如何从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?

下一篇: How to fetch a Book Title from an ISBN number?