我在 Windows 7 Enterprise 上并从批处理文件中调用一个 jar,该文件根据条件返回 0、1 或 2,我也使用了“System.exit”,
以下是我的批处理脚本
@echo off
java -jar "test.jar" %*
set exitcode=%ERRORLEVEL%
echo here is 1st exit code %exitcode%
if %exitcode% == 2 (
VERIFY > nul
set exitcode=%ERRORLEVEL%
echo here is 2nd exit code after VERIFY %exitcode%
call test.exe %*
echo here is 2nd exit code %ERRORLEVEL%
if %ERRORLEVEL% == 0 (
cmd /c "exit /b 0"
call test1.exe -f
echo here is 3rd exit code %errorlevel%
)
)exit /b %errorlevel%
我在上面的代码中所做的是,调用一个 jar 并根据它返回的错误级别,我正在调用另一个 exe,并且再次根据该 exe 的错误级别,我正在调用第三个 exe。问题是,我得到的退出代码是分配的第一个退出代码,即如果 test.jar 存在 2 即使在其他 exe 成功执行后错误级别没有改变。第三个exe永远不会被执行。尝试了不同的调用方法
命令退出 /b 0
用于将错误级别重置为 0 但它不起作用。