23

基本上,假设我有一个调用 myapp1.exe 的批处理文件,myapp1.exe 以退出代码 1 退出。批处理文件能否捕获此信息并强制批处理文件以相同的退出代码退出或执行一些其他逻辑?

4

4 回答 4

33
@echo off
rem ...
set errorlevel=
MyApp1.exe
exit /b %errorlevel%

将是显式变体。

于 2010-09-10T10:59:23.880 回答
5

接受的答案是正确的,但如果您正在使用call调用另一个批处理脚本,并且第二个批处理脚本正在使用SetLocal,您可能需要使用解析技巧来完成此操作。如果您遇到这种情况,请在您的之前添加以下代码exit b

ENDLOCAL&set myvariable=%myvariable%

现在 的值myvariable可用于调用上下文,您可以在其他脚本中看到该值。

参考资料:
https ://stackoverflow.com/a/16167938/89590
http://www.borngeek.com/2008/05/22/exiting-batch-file-contexts/

于 2014-04-29T00:29:16.277 回答
4

您可以尝试使用errorlevels. 更多信息在这里

于 2010-09-09T22:55:39.623 回答
4

%ERRORLEVEL% 存储最后执行命令的返回值

call program.exe
echo program.exe returns "%ERRORLEVEL%"
IF %ERRORLEVEL% NEQ 0 (
  echo FAILED
)
于 2015-09-25T10:23:35.860 回答