![]() |
Bat почему не работает вывод переменной %errorlevel%
Пишу программу и понадобился вывод информации о правах администратора, решил реализовать в виде:
...... :admin_test echo Good start %time% -- %date% >> %windir%\system32\boot_usb_log.txt if errorlevel 2 goto :admin_test_2 if errorlevel 1 goto :admin_test_1 :admin_test_2 goto :home :admin_test_1 cls echo *************ТРЕБУЮТСЯ ПРАВА АДМИНИСТРАТОРА******************* goto :admin_test_bad ...... Но как bat не запускай ответ на level всегда 0, записало в log или нет, да пофиг все равно 0!!!!! ..... :level echo %errorlevel% pause goto :home ..... |
Код:
echo Good start %time% -- %date% >> %windir%\system32\boot_usb_log.txt&& goto :admin_test_2|| goto :admin_test_1 |
Georgio, Спасибо я решил проблему, НО можешь написать или обьяснить на примере использование получения кода ошибки и переход в зависимости от кода ошибки
Напиши пример где бы работал этот код goto :admin_test_%errorlevel% if errorlevel 2 goto :admin_test_2 if errorlevel 1 goto :admin_test_1 :admin_test_2 echo Все хорошо!!! pause goto :exit :admin_test_1 echo Все плохо((( pause goto :exit :exit exit |
Eugene Shugaev, попробуйте укоротить имена меток
Цитата:
|
gora, Я сократил метки, но все равно посылает в :admin0
@echo off title up_boot_usb v.0.2 # Creator Eugene Shugaev echo Good start %time% -- %date% >> %windir%\system32\boot_usb_log.txt echo %errorlevel% pause if "%errorlevel%"=="2" goto:admin2 if "%errorlevel%"=="1" goto:admin1 if "%errorlevel%"=="0" goto:admin0 :admin2 echo Все хорошо!!! goto :exit :admin1 echo Все плохо((( goto :exit :admin0 echo Сраный код равен %errorlevel% goto :exit :exit pause exit |
Цитата:
|
gora, Это понятно что %errorlevel% = 0, но если процесс завершается ошибкой (отказом доступа) то должен быть код 1 говорящий о ошибке
|
Цитата:
Думаю, что далеко не все команды в cmd устанавливают или сбрасывают значение переменной %errorlevel% и это как раз Ваш случай. |
Цитата:
|
Время: 15:26. |
Время: 15:26.
© OSzone.net 2001-