Пакетный файл для поиска строки в самом последнем файле

У меня есть много файлов журналов, которые нуждаются в поиске определенных строк, и мне было интересно, могу ли я сделать командный файл для автоматизации этой работы для меня? Все, что мне нужно сделать, это найти самый последний журнал в определенном каталоге, а затем найти строку в этом файле.

Я нашел приведенный ниже код на этом веб-сайте, который прекрасно работает для открытия самого последнего файла журнала, но, к сожалению, я недостаточно знаю о пакетном программировании, чтобы изменить код для поиска строки и отображения строки.

for /f "usebackq delims=" %%i in (`dir /b /o-d`) do @call "%%i"&goto :eof

Любая помощь приветствуется.

2 ответа

Добавьте findstr в конец:

or /f "usebackq delims=" %%i in (`dir /b /o-d`) do findstr searchforthisstring %%i

Что он делает, так это ищет "searchforthisstring" файлы, найденные

dir /b/o-d 

Какие файлы списка (/b = просто назовите никакую другую информацию и /od обратный порядок даты

Сначала установите, какой файл вам нужен. Если /od не работает, попробуйте /o-d...

for /f %%i in ('dir \path\to\files\ /b /od') do set myfile=%%i

... и обратите внимание, потому что myfile придет без пути.

Тогда используйте for /f "tokens=*" прочитать каждую строку файла полностью, и findstr искать свой STRING...

for /f "tokens=*" %%i in (\path\to\files\%myfile%) do (echo %%i | findstr STRING >> OUTPUTFILE)

Если ты хочешь OUTPUTFILE чтобы быть перезаписанным каждый раз, когда вы запускаете код, используйте один >,

Если вам не нужен файл, но вы видите результат на экране, просто удалите >> OUTPUTFILE код.

Другие вопросы по тегам