批处理文件是否可以捕获它正在调用的命令的退出代码?

时间:2010-09-09 22:20:57

标签: batch-file exit-code

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

4 个答案:

答案 0 :(得分:28)

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

将是明确的变体。

答案 1 :(得分:4)

您可以尝试使用errorlevel。更多信息here

答案 2 :(得分:3)

接受的答案是正确的,但如果您使用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/

答案 3 :(得分:0)

%ERRORLEVEL%存储上次执行的命令的返回值

call program.exe
echo program.exe returns "%ERRORLEVEL%"
IF %ERRORLEVEL% NEQ 0 (
  echo FAILED
)