Пакетный файл для поиска строки в самом последнем файле - PullRequest
1 голос
/ 28 апреля 2009

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

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

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

Любая помощь будет высоко ценится.

Ответы [ 2 ]

7 голосов
/ 28 апреля 2009

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

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

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

dir /b/o-d 

Какие файлы списка (/ b = просто имя, а не любая другая информация и / o-d обратный порядок дат

2 голосов
/ 11 января 2017

Сначала укажите, какой файл вам нужен. Если /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.

...