Batch file 批处理脚本错误级别帮助
在批处理脚本中有两个操作。第一个操作调用.exe文件,该文件使用.xml文件来清除文件中的内容Batch file 批处理脚本错误级别帮助,batch-file,if-statement,error-handling,batch-processing,return-code,Batch File,If Statement,Error Handling,Batch Processing,Return Code,在批处理脚本中有两个操作。第一个操作调用.exe文件,该文件使用.xml文件来清除文件中的内容 FOR /F "tokens=1 delims=/" %%H in ('DIR /B c:\directory\*') do c:\Progra~1\scrub-prog\scrubber.exe c:\Progra~1\scrub-prog\scrubber.xml c:\%%H 第二个操作是通过psftp(putty ftp)传输已清除的文件 我需要的是一种方法来分别检查这些操作的错误级别。如果
FOR /F "tokens=1 delims=/" %%H in ('DIR /B c:\directory\*') do c:\Progra~1\scrub-prog\scrubber.exe c:\Progra~1\scrub-prog\scrubber.xml c:\%%H
第二个操作是通过psftp(putty ftp)传输已清除的文件
我需要的是一种方法来分别检查这些操作的错误级别。如果errorlevel为0,我需要继续进程,并将成功消息回送到我选择的文件中
如果errorlevel不是0,我需要进程立即结束并退出脚本,并将失败消息回显到我选择的文件中。errorlevel在变量
%errorlevel%
中设置-您可以使用简单的If语句
if errorlevel 1 echo command failed>>log.txt&goto :EOF
或者-
if %errorlevel%==1 echo command failed>>log.txt&goto :EOF
或者您可以在命令末尾使用|
,|
之后的任何代码只有在前面的命令设置了错误级别时才会执行
FOR /F "tokens=1 delims=/" %%H in ('DIR /B c:\directory\*') do (
c:\Progra~1\scrub-prog\scrubber.exe c:\Progra~1\scrub-prog\scrubber.xml c:\%%H
) || echo command failed>>log.txt&goto :EOF
上述操作将在整个for循环结束时失败退出,如果希望在可能失败的scriber命令处退出,可以执行以下操作-
FOR /F "tokens=1 delims=/" %%H in ('DIR /B c:\directory\*') do c:\Progra~1\scrub-prog\scrubber.exe c:\Progra~1\scrub-prog\scrubber.xml c:\%%H || echo failed at c:\%%H>>log.txt&goto :EOF
if not%errorlevel%==0 echo命令失败>>log.txt&goto:EOF
FOR /F "tokens=1 delims=/" %%H in ('DIR /B c:\directory\*') do c:\Progra~1\scrub-prog\scrubber.exe c:\Progra~1\scrub-prog\scrubber.xml c:\%%H || echo failed at c:\%%H>>log.txt&goto :EOF