Někdy je užitečné zkontrolovat dávkový soubor, pokud byl spuštěn z příkazového řádku se zvýšenými oprávněními nebo jako správce. Rád bych se s vámi podělil o trik, který k tomu používám. Hlavní myšlenka mého triku je založena na hodnotě speciální proměnné prostředí% errorlevel%, která ukládá výstupní kód pro většinu konzolových aplikací a příkazů. Podívejme se na to v akci.
Reklama
Když některá aplikace konzoly dokončí svou práci správně, proměnná% errrorlevel% uloží 0 jako svou hodnotu.
Otevřete novou instanci příkazového řádku a spusťte příkaz 'dir'. Poté vytiskněte hodnotu% errorlevel% pomocí příkazu 'echo':
dir echo% errorlevel%
Produkuje 0 jako výstup.
Pokusme se nyní spustit příkaz, který vyžaduje zvýšení, z běžného okna příkazového řádku bez zvýšené úrovně. Zkusme například otevřené soubory příkaz, který vyžaduje práva správce.
Pokud vytisknete hodnotu% errorlevel%, nebude to 0, protože příkaz openfiles nedokáže zobrazit otevřené soubory bez práv správce.
Pokud jej však spustíte ze zvýšeného příkazového řádku ( Zde je návod, jak otevřít výzvu cmd správce ), zobrazí vám otevřené soubory a podle očekávání vrátí 0.
Pomocí této funkce je možné implementovat jednoduchou kontrolu v dávkovém souboru:
@echo off openfiles> NUL 2> & 1 if NOT% ERRORLEVEL% EQU 0 goto NotAdmin echo Hello from elevated command prompt goto End: NotAdmin echo This command prompt is NOT ELEVATED: End
Všimněte si, že používám přesměrování výstupu k potlačení jakéhokoli výstupu z příkazu openfiles. V části „> NUL 2> & 1“ je výchozí výstup příkazu přesměrován do neznáma (NUL) a chybový výstup je přesměrován na standardní výstup, tj. Také na NUL.
Místo příkazu openfiles můžete použít libovolný příkaz, který vyžaduje nadmořskou výšku, například čistá relace příkaz.
A je to.