Néha hasznos egy kötegelt fájlt ellenőrizni, ha azt emelt parancssorból vagy rendszergazdaként indították. Szeretnék megosztani veletek egy trükköt, amelyet erre használok. A trükk fő gondolata a% errorlevel% speciális környezeti változó értékén alapul, amely a legtöbb konzolalkalmazás és parancs kilépési kódját tárolja. Lássuk ezt működés közben.
Reklám
Amikor valamelyik konzolalkalmazás megfelelően befejezi a munkáját, a% errrorlevel% változó 0 értéket tárol.
Nyisson meg egy új parancssori példányt és futtassa a 'dir' parancsot. Ezt követően nyomtassa ki a% errorlevel% értéket az 'echo' paranccsal:
dir echo% errorlevel%
Kimenetként 0-t fog produkálni.
Most próbáljuk meg végrehajtani az emelést igénylő parancsot egy szokásos, nem emelt parancssorablakból. Például próbáljuk ki a nyílt fájlok parancs, amely adminisztrátori jogokat igényel.
Ha kinyomtatja a% errorlevel% értéket, akkor az nem lesz 0, mert az openfiles parancs nem jeleníti meg a megnyitott fájlokat rendszergazda jogok nélkül.
Ha azonban emelt parancssorból futtatja ( Itt tudod megnyitni az admin cmd parancssorát ), akkor megmutatja a megnyitott fájlokat, és 0-t ad vissza, a várakozásoknak megfelelően.
Ennek a szolgáltatásnak a segítségével egyszerű ellenőrzést lehet végrehajtani a kötegelt fájlban:
@echo off openfiles> NUL 2> & 1, ha NEM% ERRORLEVEL% EQU 0 goto NotAdmin echo Hello az emelt parancssorból goto End: NotAdmin echo Ez a parancssor NEM FELTÉT: End
Ne feledje, hogy a kimenet átirányítását használom az openfiles parancs bármely kimenetének elnyomásához. A '> NUL 2> & 1 részben' a parancs alapértelmezett kimenete átirányul a sehova (NUL), és a hibakimenet a standard kimenetre, azaz a NUL-ra is.
Az openfiles parancs helyett bármilyen parancsot használhat, amely emelést igényel, például a nettó munkamenet parancs.
Ez az.