לפעמים כדאי לבדוק בקובץ אצווה אם הוא התחיל משורת פקודה מוגבהת או כמנהל. ברצוני לשתף אתכם בטריק בו אני משתמש בכדי לעשות זאת. הרעיון העיקרי של הטריק שלי מבוסס על הערך של משתנה הסביבה המיוחד% errorlevel% המאחסן את קוד היציאה עבור רוב היישומים והפקודות של המסוף. בואו נראה את זה בפעולה.
פרסומת
כאשר אפליקציית קונסולה כלשהי מסיימת את עבודתה כראוי, המשתנה% errrorlevel% מאחסן 0 כערכו.
פתח מופע חדש של שורת פקודה והפעל את הפקודה 'דיר'. לאחר מכן, הדפס את הערך% errorlevel% באמצעות הפקודה 'הד':
הד הד% שגיאת רמה%
זה יפיק 0 כפלט.
עכשיו, בואו ננסה לבצע פקודה שדורשת גובה, מחלון שורת פקודה רגיל שאינו מוגבה. לדוגמה, בואו ננסה את קבצים פתוחים פקודה הדורשת זכויות מנהל.
אם אתה מדפיס את הערך% errorlevel%, הוא לא יהיה 0 מכיוון שהפקודה openfiles לא תצליח להציג קבצים שנפתחו ללא זכויות מנהל.
עם זאת, אם אתה מפעיל אותו משורת פקודה מוגבהת ( להלן הוראות לפתיחת בקשת cmd של מנהל מערכת ), זה יראה לך קבצים שנפתחו ויחזיר 0 כצפוי.
באמצעות תכונה זו, ניתן ליישם בדיקה פשוטה בקובץ האצווה:
@echo off open files> NUL 2> & 1 if NOT% ERRORLEVEL% EQU 0 goto NotAdmin echo שלום משורת פקודה מוגבהת הולך End: NotAdmin echo שורת פקודה זו אינה מורמת: סיום
שים לב שאני משתמש בניתוב מחדש של פלט כדי לדכא כל פלט מהפקודה openfiles. בחלק '> NUL 2> & 1', פלט ברירת המחדל של הפקודה מנותב לשום מקום (NUL), ופלט השגיאה מנותב לפלט הסטנדרטי, כלומר גם ל- NUL.
במקום הפקודה openfiles, אתה יכול להשתמש בכל פקודה הדורשת הגבהה, למשל ה- מושב נטו פקודה.
זהו זה.