|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поиск слова в последней строке |
|
CMD/BAT - [решено] Поиск слова в последней строке
|
Пользователь Сообщения: 74 |
Профиль | Отправить PM | Цитировать
Добрый день!
Есть задача: В лог файле, в последней строке нужно найти слово, например Error (искать по всей строке), если слово найдено делать действие 1 (завершать процесс), если нет, делать действие 2 лог периодически дописывается новыми строками. вот что получилось - SetLocal EnableDelayedExpansion Set LogDir=C:\Progra~1\test\lab\log Set LogExt=log Set NOfLastStrings=1 Set TAlert=false For /F "tokens=*" %%F In ('Dir "%LogDir%\checkmail.%LogExt%" /B /A-D') Do ( Set LogFile=%LogDir%\%%F Call :Check ) If %TAlert%==true ( ) Exit :Check Set s=0 For /F %%A In (%LogFile%) Do (Set /A s+=1) Set /A s-=NOfLastStrings Set Alert=true For /F "tokens=* skip=%s%" %%A In (%LogFile%) Do ( Echo %%A|Find "Error">nul&&Set Alert=false ) If %Alert%==true ( Echo %LogFile% - Warning Set TAlert=true echo %date% %time% >> C:\Progra~1\Script\log.txt echo "Error not found" >> C:\Progra~1\Script\log.txt ) Else ( Echo %LogFile% - OK taskkill /f /im process.exe echo %date% %time% >> C:\Progra~1\Script\log.txt echo "Process Shutdown" >> "C:\Progra~1\Script\log.txt ) Exit /B то bat-ник отрабатывает неправильно, как можно исправить ? или какие еще есть варианты решения данного вопроса? Спасибо! |
|
Отправлено: 10:15, 27-06-2012 |
Ветеран Сообщения: 2726
|
Профиль | Отправить PM | Цитировать |
------- Последний раз редактировалось megaloman, 27-06-2012 в 22:42. Отправлено: 22:34, 27-06-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 74
|
Профиль | Отправить PM | Цитировать Спасибо! То что нужно!
|
Отправлено: 10:34, 28-06-2012 | #3 |
Пользователь Сообщения: 74
|
Профиль | Отправить PM | Цитировать чтобы не создавать новую тему, напишу здесь:
как проверять наличие слова (например error) не только в последней строке, а в последних N строках ? (реализация VBS, bat, autoit) |
Отправлено: 15:17, 15-08-2012 | #4 |
Ветеран Сообщения: 2726
|
Профиль | Отправить PM | Цитировать @Echo Off cls Set LogFile=E:\DDDD\bbb.log Set N=6 SetLocal EnableExtensions SetLocal EnableDelayedExpansion Set NN=0 Set i=0 For /F "usebackq delims=" %%s IN ("%LogFile%") Do ( Set /A NN=!NN!+1 Set Last=" %%s " Set Test=!Last: Error =! If Not !Last!==!Test! Set i=!NN! ) Set Mess=Нет If %i% GTR 0 ( Set /A i=%NN%-%i%+1 If !i! LEQ %N% Set Mess=Есть ) Echo %Mess% Set Test=!Last:Error=! Но при этом найдём строку как со словом Error, так и со словом ErrorLevel, например. |
|
------- Последний раз редактировалось megaloman, 15-08-2012 в 20:10. Отправлено: 16:54, 15-08-2012 | #5 |
Пользователь Сообщения: 74
|
Профиль | Отправить PM | Цитировать Благодарю!
Цитата megaloman:
|
|
Отправлено: 13:04, 16-08-2012 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] PHP, определение слова в строке | foma24 | Вебмастеру | 3 | 30-05-2012 15:35 | |
Поиск слова в двух файлах | david141 | Вебмастеру | 0 | 24-04-2012 02:41 | |
C/C++ - [решено] Поиск слова в тексте,подскажите функцию | VokaMut | Программирование и базы данных | 2 | 10-01-2012 15:09 | |
Поиск слова в txt затем поиск по маске "(383)" и вывод инфы | rustoss | AutoIt | 10 | 29-09-2011 15:27 | |
[решено] Поиск в строке | ancoder | AutoIt | 4 | 11-03-2009 18:58 |
|