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

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

Ответить
Настройки темы
CMD/BAT - [решено] Не сбрасывается errorlevel в условии

Новый участник


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

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


Добрый день.
Не могу понять, почему не работает обнуление errorlevel в операторе if.
Такая конструкция, например (часть кода):
Код: Выделить весь код
reg query "%regpath%" /v %prmtr1% 1>NUL 2>NUL
if %ERRORLEVEL% EQU 0 (
	goto error
) else (
	cd . 
	echo %ERRORLEVEL%
	reg query "%regpath%" /v %prmtr2%
	if %ERRORLEVEL% EQU 0 (goto error)
)
Вместо "cd ." можно любые предлагаемые аналоги (ver > nul и подобные)

Все это работает, находясь в основном условии IF, но абсолютно не работает, используемое в else, errorlevel подхватывается от "родителя" и не сбрасывается никаким образом.

Отправлено: 19:44, 11-05-2023

 

Ветеран


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

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


Цитата a.polyakov:
абсолютно не работает, »
заюзай конструкцию || или &&
без использования %errorlevel%

Код: Выделить весь код
reg query "%regpath%" /v %prmtr1% 1>NUL 2>NUL && goto error
cd . 
reg query "%regpath%" /v %prmtr2% && goto error

-------
консольный клиент telegram для Windows: www.elapser.info

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:09, 12-05-2023 | #2



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

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


Ветеран


Contributor


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

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


a.polyakov, Попробуйте для понимания так:
Код: Выделить весь код
SetLocal EnableExtensions EnableDelayedExpansion

reg query "%regpath%" /v %prmtr1% 1>NUL 2>NUL
if !ERRORLEVEL! EQU 0 (
	goto error
) else (
	cd . 
	echo !ERRORLEVEL!
	reg query "%regpath%" /v %prmtr2%
	if !ERRORLEVEL! EQU 0 (goto error)
)
Вариант от Опиум предпочтительнее

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:06, 12-05-2023 | #3


Новый участник


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

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


Оба варианта понял, в копилку опыта, не знал )

Отправлено: 11:09, 13-05-2023 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] robocopy errorlevel Опиум Скриптовые языки администрирования Windows 21 14-03-2017 20:50
CMD/BAT - [решено] Bat почему не работает вывод переменной %errorlevel% Eugene Shugaev Скриптовые языки администрирования Windows 8 12-03-2014 06:04
errorlevel msp sov44 Хочу все знать 15 29-07-2013 12:17
Разное - [решено] Как добавить ключ реестра, при условии что винда не загружается? Blast Microsoft Windows 2000/XP 56 26-01-2013 13:01
CMD/BAT - [решено] Как отследить ERRORLEVEL, если файл не удаляется BigBoo Скриптовые языки администрирования Windows 4 13-07-2011 19:27




 
Переход