บางครั้งการตรวจสอบในไฟล์แบตช์จะเป็นประโยชน์หากเริ่มต้นจากพรอมต์คำสั่งที่ยกระดับหรือในฐานะผู้ดูแลระบบ ฉันอยากจะแบ่งปันเคล็ดลับที่ฉันใช้ในการทำสิ่งนี้กับคุณ แนวคิดหลักของเคล็ดลับของฉันขึ้นอยู่กับค่าของตัวแปรสภาพแวดล้อมพิเศษ% errorlevel% ซึ่งเก็บรหัสออกสำหรับแอปคอนโซลและคำสั่งส่วนใหญ่ มาดูการทำงานกัน
การโฆษณา
เมื่อแอปคอนโซลบางตัวทำงานอย่างถูกต้องตัวแปร% errrorlevel% จะเก็บ 0 เป็นค่า
เปิดอินสแตนซ์พร้อมรับคำสั่งใหม่ และเรียกใช้คำสั่ง 'dir' หลังจากนั้นพิมพ์ค่า% errorlevel% โดยใช้คำสั่ง 'echo':
dir echo% errorlevel%
มันจะสร้าง 0 เป็นเอาต์พุต
ตอนนี้เรามาลองรันคำสั่งที่ต้องการการยกระดับจากหน้าต่างพรอมต์คำสั่งปกติที่ไม่ได้ยกระดับ ตัวอย่างเช่นลองใช้ไฟล์ openfiles คำสั่งที่ต้องการสิทธิ์ของผู้ดูแลระบบ
หากคุณพิมพ์ค่า% errorlevel% ค่านั้นจะไม่เป็น 0 เนื่องจากคำสั่ง openfiles จะไม่สามารถแสดงไฟล์ที่เปิดโดยไม่มีสิทธิ์ของผู้ดูแลระบบ
อย่างไรก็ตามหากคุณเรียกใช้จากพรอมต์คำสั่งที่ยกระดับ ( นี่คือวิธีเปิดพรอมต์ cmd ของผู้ดูแลระบบ ) มันจะแสดงไฟล์ที่คุณเปิดและจะคืนค่า 0 ตามที่คาดไว้
เมื่อใช้คุณสมบัตินี้คุณสามารถใช้การตรวจสอบอย่างง่ายในไฟล์แบตช์:
@echo off openfiles> NUL 2> & 1 ถ้าไม่ใช่% ERRORLEVEL% EQU 0 ไปที่ NotAdmin echo สวัสดีจากพรอมต์คำสั่งที่ยกระดับไปที่ End: NotAdmin echo พรอมต์คำสั่งนี้ไม่ได้รับการยกเว้น: สิ้นสุด
โปรดทราบว่าฉันใช้การเปลี่ยนเส้นทางเอาต์พุตเพื่อระงับเอาต์พุตจากคำสั่ง openfiles ในส่วน '> NUL 2> & 1' เอาต์พุตเริ่มต้นของคำสั่งจะถูกเปลี่ยนเส้นทางไปยังไม่มีที่ไหนเลย (NUL) และเอาต์พุตข้อผิดพลาดจะถูกเปลี่ยนเส้นทางไปยังเอาต์พุตมาตรฐานนั่นคือไปยัง NUL ด้วย
แทนที่จะใช้คำสั่ง openfiles คุณสามารถใช้คำสั่งใดก็ได้ที่ต้องการการยกระดับตัวอย่างเช่นไฟล์ เซสชันสุทธิ คำสั่ง
แค่นั้นแหละ.