我正在运行一个程序,想查看它的返回代码是什么(因为它基于不同的错误返回了不同的代码)。
我知道在 Bash 中,我可以通过运行
回声 $?
在 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暗示,如果您尝试从命令提示符运行窗口化的应用程序(例如基于 Win32 的窗口) ,则此方法将无效。一个窗口化的应用程序将在后台运行,并且控件将立即返回到命令提示符(最有可能的ErrorLevel
为零,以指示该进程已成功创建 )。当窗口应用程序最终退出时,其退出状态将丢失。
但是,与其使用其他地方提到的基于控制台的 C ++ 启动器,还可以使用命令提示符下的START /WAIT
命令来启动带窗口的应用程序。这将启动带窗口的应用程序,等待其退出,然后将控制权返回到命令提示符,并在ErrorLevel
中设置进程的退出状态。
start /wait something.exe
echo %errorlevel%