有一个应用程序构建为 Windows 应用程序(不是控制台应用程序!)。我通过控制台将参数传递给程序。该程序可以运行,我将其设置Environment.ExitCode为所需的值 0 或 1。然后我在同一个控制台中运行它 echo %ERRORLEVEL%以检查执行代码的状态。它总是返回零,所以我不设置为Environment.ExitCode. 如果您将应用程序构建为控制台应用程序,则它可以正常工作,并且如果代码正确执行,则返回零,否则返回 -1。该应用程序必须构建为 Windows 应用程序,所以我的问题是 - 如何检查应用程序是否返回正确的退出状态代码?为什么总是返回 0?
您需要在控制台中运行 *.exe 并等待它完成(默认情况下,启动 windows 应用程序后,控制立即返回控制台,因此我们看不到错误级别的变化)。你需要像这样运行它:
echo
%ERRORLEVEL%返回状态