如何从Windows命令行获取应用程序退出代码?
我正在运行一个程序,并想查看它的返回码是什么(因为它根据不同的错误返回不同的码)。
我知道在Bash我可以通过跑步来做到这一点
echo $?
在Windows上使用cmd.exe时该怎么办?
名为errorlevel
伪环境变量存储退出代码:
echo Exit Code is %errorlevel%
另外, if
命令有一个特殊的语法:
if errorlevel
看看if /?
了解详情。
例
@echo off
my_nify_exe.exe
if errorlevel 1 (
echo Failure Reason Given is %errorlevel%
exit /b %errorlevel%
)
警告:如果您设置了环境变量名称errorlevel
,则%errorlevel%
将返回该值,而不是退出代码。 使用(set errorlevel=
)清除环境变量,允许通过%errorlevel%
环境变量访问errorlevel
的真实值。
测试ErrorLevel
适用于控制台应用程序,但正如dmihailescu
所暗示的dmihailescu
,如果您尝试从命令提示符运行窗口化应用程序(例如基于Win32的应用程序),这将不起作用。 窗口化的应用程序将在后台运行,并且控制将立即返回到命令提示符(很可能ErrorLevel
为零以表示进程已成功创建)。 当窗口化的应用程序最终退出时,其退出状态将丢失。
但是,不要使用其他地方提到的基于控制台的C ++启动程序,更简单的方法是使用命令提示符的START /WAIT
命令启动一个带窗口的应用程序。 这将启动窗口应用程序,等待它退出,然后将控制返回到命令提示符,并在ErrorLevel
中设置进程的退出状态。
start /wait something.exe
echo %errorlevel%
使用内置的ERRORLEVEL变量:
echo %ERRORLEVEL%
但要小心应用程序是否定义了名为ERRORLEVEL的环境变量!
链接地址: http://www.djcxy.com/p/55943.html上一篇: How do I get the application exit code from a Windows command line?