标题: 如何捕获批处理的错误信息?
[打印本页]
作者: wingofsea
时间: 2006-6-1 13:23
标题: 如何捕获批处理的错误信息?
要实现如下的功能:
判断c:\program file\utility目录下是否存在 register.ini文件,如果存在则首先备份该文件,再使用c:\register.ini文件替换该。不存在则直接将c:\register.ini拷贝至c:\program file\utility目录下。
基于上诉要求,写代码如下:
@echo off
set workspace=c:\program files\utility
set orig_ini=%workspace%\register.ini
set newFile=c:\register.ini
if exist "%orig_ini%" (
echo. register file exists
echo back up origianl register file
mkdir "%workspace%\backRegisterini"
copy "%workspace%\register.ini" "%workspace%\backRegisterini\register.ini"
copy "%newFile%" "%workspace%\register.ini"
echo Delete the backup copy?
rmdir /s "%workspace%\backRegisterini"
) else (
echo register.ini not found
)
从上面的代码可以看出,有以下几个关键点:
1 创建目录 backRegisterini
2 备份旧文件
3 将c:\reginster.ini文件覆盖c:\program files\utility\register.ini
如何对这3条语句进行异常处理,捕获异常信息?,比如error level?
谢谢
作者: wingofsea
时间: 2006-6-2 14:02
自己顶一下,谢谢
作者: willsort
时间: 2006-6-3 20:05
Re wingofsea:
批处理的异常处理,一般以预防为主,善后为辅,在错误发生之前,我们要能判断出错误发生的各种可能性,然后进行抛出处理。所以,在 mkdir/copy 之前对操作对象进行存在性判断是必要的。比如
@echo off
set workspace=c:\program files\utility
set orig_ini=%workspace%\register.ini
set bakDir=%workspace%\backRegisterini\
set newFile=c:\register.ini
if exist "%bakDir%" mkdir "%bakDir%"
if not exist "%orig_ini%" echo Original register.ini not found &goto :eof
if not exist "%bakDir%\register.ini" copy "%orig_ini%" "%bakDir%">nul
if not exist "%newFile%" echo New register.ini not found & goto :eof
copy "%newFile%" "%orig_ini%">nul
if not exist "%bakDir%" goto :eof
echo Delete the backup copy?
rmdir /s "%bakDir%"