【发布时间】:2015-12-16 15:08:24
【问题描述】:
我目前正在开发一个 WPF 应用程序,该应用程序提供 ExitCodes,可在 Windows Eventlog 中找到。
在某些情况下,我需要立即取消执行。
因此我使用Environment.Exit(someInteger)。
还有就是需要批量启动,检查ErrorLevel is NOT 0是否。
通过 VisualStudio OutputConsole 输出:
The program '[6908] MyApp.vshost.exe: Program Trace' has exited with code 0 (0x0).
The program '[6908] MyApp.vshost.exe' has exited with code 3 (0x3).
CMD 输出:
cd MyVisualStudioDebugDir
MyApp.exe
echo %errorlevel%
=> returns 0
为什么我打电话时这里是 0 Environment.Exit(3) ?
【问题讨论】:
-
你确定你的例子中前面的行没有放在括号内吗?在这种情况下,您需要启用延迟扩展并改用
echo !errorlevel!。 -
“程序跟踪”是提供 VS2015 诊断工具的辅助进程。它从您的真实程序中收集 ETW 事件,以便 VS 可以向您显示 cpu 和内存使用统计信息。当然没有问题,看到它以代码 0 退出是正常的。您使用 %errorlevel% 的方式仅适用于控制台模式应用程序。 WPF 应用程序无需等待 cmd.exe 完成即可启动。
标签: c# wpf batch-file cmd exit-code