从批处理文件中获取错误代码
我有一个运行几个可执行文件的批处理文件,我希望它在成功时退出,但如果退出代码 <> 则停止。 0.我该怎么做?
I have a batch file that runs a couple executables, and I want it to exit on success, but stop if the exit code <> 0. How do I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
听起来您需要“If Errorlevel”命令。假设您的可执行文件在失败时返回非 0 退出代码,您可以执行以下操作:
错误级别检查是作为大于或等于检查完成的,因此任何非 0 退出值都将触发跳转。因此,如果您需要检查多个特定退出值,则应首先检查最高的那个。
Sounds like you'll want the "If Errorlevel" command. Assuming your executable returns a non-0 exit code on failure, you do something like:
Errorlevel checking is done as a greater-or-equal check, so any non-0 exit value will trigger the jump. Therefore, if you need to check for more than one specific exit value, you should check for the highest one first.
您还可以使用 条件处理符号来进行简单的成功/失败检查。例如:
仅当
myProgram.exe
返回错误级别 0 时才会打印Done!
。如果 myProgram.exe 返回非零错误级别,则会导致批处理文件暂停。
You can also use conditional processing symbols to do a simple success/failure check. For example:
would print
Done!
only ifmyProgram.exe
returned with error level 0.would cause the batch file to pause if myProgram.exe returns a non-zero error level.
比 Hellion 的答案 更好的解决方案是检查
%ERRORLEVEL%
环境变量:它执行 < code>IF 主体,如果返回代码不是零,而不仅仅是大于零的值。
命令
IF ERRORLEVEL 1 ...
错过了负返回值。某些程序也可能使用负值来指示错误。顺便说一句,我喜欢 Cheran 的回答(使用
&&
和||< /code> 运算符),并向所有人推荐。
有关该主题的更多信息,请阅读此文章
A solution better than Hellion's answer is checking the
%ERRORLEVEL%
environment variable:It executes the
IF
body, if the return code is anything other than zero, not just values greater than zero.The command
IF ERRORLEVEL 1 ...
misses the negative return values. Some progrmas may also use negative values to indicate error.BTW, I love Cheran's answer (using
&&
and||
operators), and recommend that to all.For more information about the topic, read this article