ฉันใช้ 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 ตัวที่สาม ปัญหาคือ exitcode ที่ฉันได้รับคือรหัสทางออกแรกที่กำหนด เช่น ถ้า test.jar มีอยู่กับ 2 แม้ว่าการดำเนินการ exe อื่น ๆ ระดับข้อผิดพลาดจะไม่ได้รับการเปลี่ยนแปลงสำเร็จก็ตาม และ exe ตัวที่สามไม่เคยถูกประหารชีวิต พยายามใช้วิธีการเรียกก
cmd ออก /b 0
สำหรับการรีเซ็ตระดับข้อผิดพลาดเป็น 0 แต่มันไม่ทำงาน