Изначально немного не так реализовал, как вы просили - всего на один файл. Теперь переделал на все файлы с нужным расширением в заданной директории.
Замените Word1-Word4 на нужные вам слова, ну и директорию с логами укажите.
Код:
![Выделить весь код](images/misc/selectcode.png)
@Echo Off
SetLocal EnableDelayedExpansion
Set LogDir=logs
Set LogExt=txt
Set NOfLastStrings=15
:: Получаем список логов
Set TAlert=false
For /F "tokens=*" %%F In ('Dir "%LogDir%\*.%LogExt%" /B /A-D') Do (
Set LogFile=%LogDir%\%%F
Call :Check
)
:: Действия, если не найдено ни одного из слов во всех логах
If %TAlert%==true (
Echo.
Echo ALERT
)
Pause
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 "Word1">nul&&Set Alert=false
Echo %%A|Find "Word2">nul&&Set Alert=false
Echo %%A|Find "Word3">nul&&Set Alert=false
Echo %%A|Find "Word4">nul&&Set Alert=false
)
:: Действия, если не найдено ни одного из слов в последних строках
If %Alert%==true (
Echo %LogFile% - Warning
Set TAlert=true
) Else (
Echo %LogFile% - OK
)
Exit /B