5

我有一个批处理文件,它可以做几件事。如果其中一个失败,我想退出整个程序。例如:

@echo off
type foo.txt 2>> error.txt >> success.txt
mkdir bob

如果找不到文件 foo.txt,那么我希望将 stderr 消息附加到 error.txt 文件,否则将 foo.txt 的内容附加到 success.txt。基本上,如果 type 命令返回一个标准错误,那么我希望批处理文件退出而不是创建一个新目录。如何判断是否发生错误并决定是否需要继续执行下一个命令?

4

1 回答 1

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
 )
于 2010-07-21T20:39:13.313 回答