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%"