与Linux中的$?类似,有没有办法在Windows批处理文件(.bat)中获取程序的退出状态?
例如,程序在成功执行时有一个System.exit(0),失败时有一个System.exit(1),我如何在.bat文件中捕获这些退出值?
发布于 2009-05-20 09:41:05
使用%ERRORLEVEL%。你不喜欢批处理文件的清晰和简洁吗?:)
发布于 2009-05-20 09:42:03
类似于:
java Foo
set exitcode=%ERRORLEVEL%
echo %exitcode%将其作为批处理文件的绝对下一行非常重要,以避免错误级别被覆盖:)
请注意,如果使用
IF ERRORLEVEL number批处理文件的“特性”,意思是“如果错误级别大于或等于number”--它不是基于相等的。我以前也被它咬过:)
发布于 2009-05-20 09:46:06
Raymond Chen有一篇很好的博客文章,名为ERRORLEVEL is not %ERRORLEVEL%。值得一查。
同样值得注意的是,大多数人认为是注释的REM命令,实际上不是。REM命令是一个nop命令,总是在之后。在REM之后,错误级别始终为0。所以
willalwaysfail.bat
REM unless you insert a comment after it
if errorlevel 1 goto fail永远不会失败。
https://stackoverflow.com/questions/887066
复制相似问题