ตั้งค่า ERRORLEVEL เป็น 0
ฉันมีไฟล์แบตช์ที่เป็น wrapper รอบ ๆ ตัวติดตั้ง ไฟล์แบตช์นี้ตรวจสอบระดับข้อผิดพลาดที่ส่งคืนโดยผู้ติดตั้งและพิมพ์ตามนั้น ฉันสังเกตเห็นว่าถ้าฉันดำเนินการset ERRORLEVEL=0ในพรอมต์คำสั่งก่อนที่จะเริ่มการทำงานแบตช์ไฟล์ (ในหน้าต่างคำสั่ง / สภาพแวดล้อมเดียวกัน) ตัวติดตั้งจะไม่ยุ่งกับ errorlevel และแบทช์สคริปต์ของฉันจะส่งคืนผ่านเสมอ ฉันสันนิษฐานว่า%ERRORLEVEL%เป็นตัวแปรที่กำหนดโดย Windows และใช้เฉพาะในการพิมพ์ข้อผิดพลาดจากโปรแกรมและสคริปต์และการใช้ตัวแปรในไฟล์แบทช์หรืออย่างอื่นจะเป็น 'ความเสี่ยงของคุณเอง' เพราะมันสามารถเปลี่ยนแปลงได้ตลอดเวลาโดย กระบวนการอื่น จากสิ่งที่ดูเหมือนว่าเมื่อฉันตั้ง errorlevel ในสภาพแวดล้อมที่กำหนดมันก็เลยยุติการใช้ errorlevel เป็นผู้ถือของรหัสทางออก ไม่มีใครรู้ว่าทำไมถึงเป็นเช่นนี้? สำหรับฉันมันเป็นพฤติกรรมที่ไม่คาดคิดที่แปลกประหลาด ข้อมูลใด ๆ ในหัวข้อจะได้รับการชื่นชมอย่างมาก!