Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Bat почему не работает вывод переменной %errorlevel%

Ответить
Настройки темы
CMD/BAT - [решено] Bat почему не работает вывод переменной %errorlevel%

Пользователь


Сообщения: 58
Благодарности: 1

Профиль | Отправить PM | Цитировать


Пишу программу и понадобился вывод информации о правах администратора, решил реализовать в виде:
......

: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
.....

Отправлено: 19:31, 11-03-2014

 

Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
echo Good start %time% -- %date% >> %windir%\system32\boot_usb_log.txt&& goto :admin_test_2|| goto :admin_test_1
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:59, 11-03-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 58
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

Отправлено: 20:12, 11-03-2014 | #3


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Eugene Shugaev, попробуйте укоротить имена меток
Цитата:
Метка может включать пробелы, но не может включать другие разделители, такие как точка с запятой или знак равенства. В команде goto используются только первые восемь знаков метки. Например, следующие метки эквивалентны и рассматриваются как :hithere0:

:hithere0
:hithere01
:hithere02

Отправлено: 20:50, 11-03-2014 | #4


Пользователь


Сообщения: 58
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

Отправлено: 21:07, 11-03-2014 | #5


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата Eugene Shugaev:
но все равно посылает в :admin0 »
Очевидно, что у Вас %errorlevel% = 0

Отправлено: 21:11, 11-03-2014 | #6


Пользователь


Сообщения: 58
Благодарности: 1

Профиль | Отправить PM | Цитировать


gora, Это понятно что %errorlevel% = 0, но если процесс завершается ошибкой (отказом доступа) то должен быть код 1 говорящий о ошибке

Отправлено: 21:15, 11-03-2014 | #7


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата Eugene Shugaev:
но если процесс завершается ошибкой (отказом доступа) то должен быть код 1 говорящий о ошибке »
Я полагаю, что это не есть истина!
Думаю, что далеко не все команды в cmd устанавливают или сбрасывают значение переменной %errorlevel% и это как раз Ваш случай.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:44, 11-03-2014 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Eugene Shugaev:
но если процесс завершается ошибкой (отказом доступа) »
Какой процесс? У вас «pause», «echo» и «title».

Отправлено: 06:04, 12-03-2014 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Bat почему не работает вывод переменной %errorlevel%

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - Вывод даты в переменную (bat) rootheaven Скриптовые языки администрирования Windows 6 23-07-2017 20:21
CMD/BAT - [решено] Ввод Вывод, присвоение значения переменной из файла Loki3D Скриптовые языки администрирования Windows 1 03-09-2013 15:34
CMD/BAT - [решено] Почему не работает получение части значения переменной в конструкции Echo.!Var:~0,1! Dragokas Скриптовые языки администрирования Windows 5 13-08-2013 09:22
[решено] bat-файл работает... и он же не работает. В чем дело? truvo Хочу все знать 10 26-03-2009 02:36
VBS/WHS/JS - Вывод значения переменной в сообщение la_vanille_ciel Программирование и базы данных 3 09-04-2008 11:55




 
Переход