Windows Tips & News

Як перевірити пакетний файл, якщо ви використовуєте його з підвищеними можливостями

click fraud protection
РЕКОМЕНДУЄМО: Натисніть тут, щоб вирішити проблеми з Windows та оптимізувати продуктивність системи

Іноді корисно перевірити в пакетному файлі, чи він був запущений з командного рядка з підвищеними привілеями або як адміністратор. Я хотів би поділитися з вами трюком, який я використовую для цього. Основна ідея мого трюку заснована на значенні спеціальної змінної середовища %errorlevel%, яка зберігає код виходу для більшості консольних програм і команд. Давайте подивимося на це в дії.

Реклама


Коли деяка консольна програма виконує свою роботу належним чином, змінна %errrorlevel% зберігає 0 як своє значення.
Відкрийте новий екземпляр командного рядка і запустіть команду "dir". Після цього надрукуйте значення %errorlevel% за допомогою команди "echo":
реж. echo %errorlevel%

Він видасть 0 як вихід.
рівень помилки каталога
Тепер давайте спробуємо виконати команду, яка вимагає підвищення, із звичайного вікна командного рядка без підвищення. Наприклад, давайте спробуємо відкриті файли команда, яка вимагає прав адміністратора.


Якщо ви надрукуєте значення %errorlevel%, воно не буде 0, оскільки команда openfiles не зможе показати відкриті файли без прав адміністратора.
openfiles помилка рівня 1
Однак, якщо ви запускаєте його з підвищеного командного рядка (ось як відкрити командний рядок адміністратора), він покаже вам відкриті файли та поверне 0, як і очікувалося.
openfiles помилка рівня 0
Використовуючи цю функцію, можна реалізувати просту перевірку в пакетному файлі:

@echo off. openfiles > NUL 2>&1 якщо НЕ %ERRORLEVEL% EQU 0 перейти до NotAdmin echo Привіт із підвищеного командного рядка перейти до End :NotAdmin echo Цей командний рядок НЕ ПІДВИЩЕНИЙ :End. 

Зауважте, що я використовую перенаправлення виводу, щоб придушити будь-який вихід з команди openfiles. У частині "> NUL 2>&1" вихідні дані команди за замовчуванням перенаправляються в нікуди (NUL), а вихідні дані про помилку перенаправляються на стандартний вихід, тобто також на NUL.
Замість команди openfiles можна використовувати будь-яку команду, яка вимагає підвищення, наприклад, the чиста сесія команда.
Це воно.

РЕКОМЕНДУЄМО: Натисніть тут, щоб вирішити проблеми з Windows та оптимізувати продуктивність системи
Увімкнути або вимкнути вбудовану панель рукописного введення в Windows 10

Увімкнути або вимкнути вбудовану панель рукописного введення в Windows 10

Windows 10 містить спеціальний режим для сенсорної клавіатури, який перетворює її на панель рукоп...

Читати далі

Покращення Chmod і Chown WSL у Windows 10

Покращення Chmod і Chown WSL у Windows 10

Користувачі Linux напевно знайомі з консольними інструментами chown і chmod. Ці дві програми є ва...

Читати далі

Google Chrome підтримує HDR-відео в Windows 10

Google Chrome підтримує HDR-відео в Windows 10

РЕКОМЕНДУЄМО: Натисніть тут, щоб вирішити проблеми з Windows та оптимізувати продуктивність систе...

Читати далі