我有一个批处理文件可以执行多项操作。如果其中一个失败,我想退出整个程序。例如:
@echo off
type foo.txt 2>> error.txt >> success.txt
mkdir bob
如果找不到文件foo.txt,那么我希望将stderr消息附加到error.txt文件中,否则将foo.txt的内容附加到success.txt。基本上,如果type命令返回stderr,那么我希望批处理文件退出而不创建新目录。如何判断是否发生错误并决定是否需要继续执行下一个命令?
答案 0 :(得分:10)
使用ERRORLEVEL
检查上一个命令的退出代码:
if ERRORLEVEL 1 exit /b
编辑:文档说“如果最后一个命令的退出代码是等于或大于X,则条件为真”(您可以使用if /?
进行检查)。除此之外,您还可以检查文件是否存在
if exist foo.txt echo yada yada
如果条件为真,则执行多个命令:
if ERRORLEVEL 1 ( echo error in previous command & exit /b )
或
if ERRORLEVEL 1 (
echo error in previous command
exit /b
)