Mõnikord on kasulik kontrollida pakettfaili, kui seda alustati kõrgendatud käsuviibalt või administraatorina. Tahaksin teiega jagada nippi, mida kasutan selleks. Minu triki põhiidee põhineb spetsiaalse keskkonnamuutuja% errorlevel% väärtusel, mis salvestab enamiku konsoolirakenduste ja käskude väljumiskoodi. Vaatame seda tegevuses.
Reklaam
Kui mõni konsoolirakendus lõpetab oma töö korralikult, salvestab muutuja% errrorlevel% väärtuseks 0.
Avage uus käsuviip-eksemplar ja käivitage käsk 'dir'. Pärast seda printige väärtus% errorlevel%, kasutades käsku echo:
dir kaja% tõrketase%
See annab väljundiks 0.
Proovime nüüd tavalisest tõstmata käsuviibast käivitada käsu, mis nõuab kõrgust. Proovime näiteks avatud failid käsk, mis nõuab administraatori õigusi.
Kui prindite väärtuse% errorlevel%, pole see 0, kuna käsk openfiles ei näita avatud faile ilma administraatori õigusteta.
Kui käivitate selle aga kõrgendatud käsuviibalt ( Siit saate teada, kuidas administraatori cmd-viip avada ), näitab see teile avatud faile ja tagastab ootuspäraselt 0.
Selle funktsiooni abil on pakettfailis võimalik teostada lihtne kontroll:
@echo off openfiles> NUL 2> & 1, kui EI% ERRORLEVEL% EQU 0 goto NotAdmin echo Tere kõrgendatud käsuviibalt goto End: NotAdmin echo
Pange tähele, et käsu openfiles mis tahes väljundi summutamiseks kasutan väljundi ümbersuunamist. '> NUL 2> & 1 osas' suunatakse käsu vaikeväljund kuhugi (NUL) ja veaväljund suunatakse standardväljundisse, s.t ka NUL-i.
Käsu openfiles asemel võite kasutada suvalist kõrgust nõudvat käsku, näiteks netoseanss käsk.
See selleks.