|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Корректное возвращение Errorlevel |
|
|
CMD/BAT - [решено] Корректное возвращение Errorlevel
|
Новый участник Сообщения: 14 |
Доброго времени суток.
Есть скрипт проверки событий по заданным аргументам: @echo off setlocal enabledelayedexpansion set r=%1 set u=%2 set p=%3 set x=%4 set y=%5 set z=%6 FOR /F "delims=" %%i IN ('%windir%\system32\wevtutil.exe qe /r:%r% /u:%u% /p:%p% %x% /rd:true /f:text /q:"*[%x%[Provider[@Name='%y%'] and (EventID=%z%)]]"^|find /c "%z%"') do set "cnt=%%~i" echo !errorlevel! echo %cnt% Как выводить errorlevel именно команды find, чтобы убедиться, что команда сработала верно. И как смоделировать ситуацию, когда он будет 1? |
|
Отправлено: 14:12, 24-05-2015 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата hunk3r:
Команда в конвейере сработает верно всегда, поскольку её результатом всегда является число (ноль и больше). Соответственно, трудно представить ситуацию, когда "errorlevel" будет больше ноля, разве что в случае ошибки в синтаксисе самой команды. |
|
Последний раз редактировалось Georgio, 24-05-2015 в 15:44. Отправлено: 15:05, 24-05-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата hunk3r:
|
|
Отправлено: 15:23, 24-05-2015 | #3 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Благодарю за ответы. Значит, в моем примере смысла выводить errorlevel нет, если я увижу число событий?
|
Отправлено: 15:25, 24-05-2015 | #4 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать В дальнейшем - делать call с уже вписанными параметрами и получать на почту меседж о текущем состоянии по нужным эвентам нужных серверов.
|
|
Отправлено: 23:43, 24-05-2015 | #5 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Ребят, а как включить в конструкцию проверку
if %errorlevel% neq 0 goto B :B echo "уровень ошибки ..." else goto A :A find ... |
Отправлено: 10:24, 25-05-2015 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать
|
Отправлено: 11:34, 25-05-2015 | #7 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать errorlevel wevtutil'a... Как альтернативу - вижу два запроса wevtutil.exe с параметрами и вывод errlvl после первого. Эстетика конструкции пострадает, но что делать?)
|
Отправлено: 11:57, 25-05-2015 | #8 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Сделал. Конечный скрипт вызываемого файла:
@echo off setlocal enabledelayedexpansion set r=%1 set u=%2 set p=%3 set x=%4 set y=%5 set z=%6 %windir%\system32\wevtutil.exe qe /r:%r% /u:%u% /p:%p% %x% /rd:true /f:text /q:"*[%x%[Provider[@Name='%y%'] and (EventID=%z%) and TimeCreated[timediff(@SystemTime) <= 86400000]]]">nul if %errorlevel% neq 0 set result=-%errorlevel% if %errorlevel% equ 0 set result=0 FOR /F "delims=" %%i IN ('%windir%\system32\wevtutil.exe qe /r:%r% /u:%u% /p:%p% %x% /rd:true /f:text /q:"*[%x%[Provider[@Name='%y%'] and (EventID=%z%) and TimeCreated[timediff(@SystemTime) <= 86400000]]]"^|find /c "%z%"') do set "cnt=%%~i" echo %cnt% echo %result% |
Отправлено: 13:04, 25-05-2015 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 13:49, 25-05-2015 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Сортировка файлов по результату Errorlevel | Herheinz | Скриптовые языки администрирования Windows | 12 | 22-03-2015 20:23 | |
CMD/BAT - [решено] %errorlevel% внутри цикла всегда 0 | apozlevich | Скриптовые языки администрирования Windows | 5 | 22-11-2013 18:55 | |
errorlevel msp | sov44 | Хочу все знать | 15 | 29-07-2013 12:17 | |
CMD/BAT - [решено] вопрос по ping и команде if %errorlevel% | zion87 | Скриптовые языки администрирования Windows | 1 | 29-12-2011 02:57 | |
Cmd Параметр ERRORLEVEL | storm2005 | Microsoft Windows NT/2000/2003 | 1 | 30-03-2007 18:49 |
|