我有一个可以做几件事的批处理文件。如果其中一个失败,我想退出整个程序。例如:
@echo off
type foo.txt 2>> error.txt >> success.txt
mkdir bob
如果找不到文件 foo.txt,那么我希望将 stderr 消息附加到 error.txt 文件,否则将 foo.txt 的内容附加到 success.txt。基本上,如果 type 命令返回 stderr,那么我希望批处理文件退出而不是创建新目录。如何判断是否发生错误并决定是否需要继续执行下一个命令?
最佳答案
使用 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
)
关于dos - 如何在出错时退出批处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3303575/