![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поиск слова в последней строке |
|
CMD/BAT - [решено] Поиск слова в последней строке
|
Пользователь Сообщения: 74 |
Добрый день!
Есть задача: В лог файле, в последней строке нужно найти слово, например 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 |
Ветеран Сообщения: 2735
|
Профиль | Отправить 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 |
Ветеран Сообщения: 2735
|
Профиль | Отправить 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 |
|