Показать сообщение отдельно
Старый 30.06.2009, 13:09   #61  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Delfins Посмотреть сообщение
Что то у меня не правильно работает обработка статуса при стопе:
X++:
if errorlevel 1 goto exit_OK
Пока идёт цикл остановки ("Stopping ..." в АОС утилите).. он у меня возвращает как уже остановленный... Это так и должно быть?
В данном случае в батнике некорректно обрабатывается errorlevel. Особенность командных процессоров еще со времен DOS в этом отношении состоит в том, что if errorlevel <значение> использует фактически не оператор ==, а оператор >=, поэтому если возможных кодов возврата несколько, как в данном случае, то их проверки следует располагать по убыванию значения кода возврата, например, так:
Код:
if errorlevel 4 goto AOS_started
if errorlevel 3 goto AOS_stopPending
if errorlevel 2 goto AOS_startPending
if errorlevel 1 goto AOS_stopped
Одиночная же проверка if errorlevel 1 вообще ничего не говорит о реальном статусе AOS'а, но лишь позволяет определить, что статус AOS'а был успешно получен.