Показать полную графическую версию : [решено] *CMD/BAT* | Условное выполнение в батнике
тов.умные люди, скажите плз, как сделать следующее (Windows):
нужно при удачном выполнении комманды @isql -Usa -P1234 -n -Q"exec do_something 100, 200"
напечатать в лог echo %date% %time% done something >> %varlog%\sql-activity.log
при неудачном - ничего не печатать.
Или это слишком сложно (т.е. прогу проще написать)?
vadimiron
13-07-2006, 19:43
pva
А разве в батниках нет чтото типа GOTO или я путаю??
hasherfrog
13-07-2006, 22:02
См. errorlevel
Формат:
IF [NOT] ERRORLEVEL число команда
Где:
ERRORLEVEL - число Условие является истинным, если код возврата последней выполненной программы не меньше указанного числа.
Теоретически, Ваше @isql -Usa -P1234 -n -Q"exec do_something 100, 200" при неудачном завершении должно выставить ERRORLEVEL отличное от нуля (ноль - как правило - нормальное завершение программ, так принято). Но даже если ERRORLEVEL не будет установлен, можно будет поймать ошибку путём отслеживания вывода в консоль сообещний об ошибке.
Так что результат ориентировочно такой:
@isql -Usa -P1234 -n -Q"exec do_something 100, 200"
IF NOT ERRORLEVEL 0 echo %date% %time% done something >> %varlog%\sql-activity.log
Или такой:
@isql -Usa -P1234 -n -Q"exec do_something 100, 200" | find "УНИКАЛЬНАЯЧАСТЬСООБЩЕНИЯООШИБКЕ"
IF NOT ERRORLEVEL 0 echo %date% %time% done something >> %varlog%\sql-activity.log
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.