Понекад је корисно проверити у батцх датотеци да ли је покренута из повишене командне линије или као администратор. Желео бих да поделим са вама трик који користим за ово. Главна идеја мог трика заснива се на вредности посебне променљиве окружења% еррорлевел% која чува излазни код за већину апликација и команди конзоле. Да видимо ово на делу.
Оглас
Када нека апликација конзоле правилно заврши свој посао, променљива% ерррорлевел% чува 0 као вредност.
Отворите нову инстанцу командне линије и покрените команду 'дир'. Након тога, одштампајте вредност% еррорлевел% помоћу команде 'ецхо':
дир ецхо% еррорлевел%
Као излаз ће произвести 0.
Покушајмо сада да извршимо наредбу која захтева надморску висину из редовног прозора командне линије који није повишен. На пример, пробајмо опенфилес команда која захтева администраторска права.
Ако одштампате вредност% еррорлевел%, она неће бити 0, јер наредба опенфилес неће приказати отворене датотеке без администраторских права.
Међутим, ако га покренете из повишеног командног ретка ( ево како да отворите админ цмд упит ), приказаће вам отворене датотеке и вратиће 0, као што се очекивало.
Користећи ову функцију, могуће је применити једноставну проверу у батцх датотеци:
@ецхо офф опенфилес> НУЛ 2> & 1 иф НОТ% ЕРРОРЛЕВЕЛ% ЕКУ 0 гото НотАдмин ецхо Поздрав из повишене командне линије гото Енд: НотАдмин ецхо Ова командна линија НИЈЕ НАДИГНУТА: Крај
Имајте на уму да користим преусмеравање излаза да потиснем било који излаз из наредбе опенфилес. У делу '> НУЛ 2> & 1', подразумевани излаз наредбе се преусмерава никуда (НУЛ), а излаз грешке преусмерава се на стандардни излаз, тј. Такође на НУЛ.
Уместо наредбе опенфилес, можете користити било коју наредбу која захтева надморску висину, на пример, нето сесија команда.
То је то.