中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-01 15:49
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何捕获批处理的错误信息? 查看 1,072 回复 2
楼 主 如何捕获批处理的错误信息? 发表于 2006-06-01 13:23 ·  中国 北京 联通
初级用户
积分 124
发帖 34
注册 2006-05-23 11:38
20年会员
UID 55845
状态 离线
要实现如下的功能:
判断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?
谢谢
2 发表于 2006-06-02 14:02 ·  中国 北京 联通
初级用户
积分 124
发帖 34
注册 2006-05-23 11:38
20年会员
UID 55845
状态 离线
自己顶一下,谢谢
3 发表于 2006-06-03 20:05 ·  中国 山西 临汾 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
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%"
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
论坛跳转: