Код:
@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%
Пустые строки в подсчетах не участвуют. Я подразумеваю, что слово-это последовательность символов, ограниченных с обеих сторон пробелами, за исключением случая, когда слово расположено в начале или конце строки, или когда оно единственное в строке. В примере анализируем наличие слова Error. Иначе придётся как-то анализировать знаки пунктуации. Если не принимать такое допущение, в этом случае необходимо вместо имеющейся строки написать
Set Test=!Last:Error=!
Но при этом найдём строку как со словом Error, так и со словом ErrorLevel, например.