Пакетный файл для поиска строки в самом последнем файле
У меня есть много файлов журналов, которые нуждаются в поиске определенных строк, и мне было интересно, могу ли я сделать командный файл для автоматизации этой работы для меня? Все, что мне нужно сделать, это найти самый последний журнал в определенном каталоге, а затем найти строку в этом файле.
Я нашел приведенный ниже код на этом веб-сайте, который прекрасно работает для открытия самого последнего файла журнала, но, к сожалению, я недостаточно знаю о пакетном программировании, чтобы изменить код для поиска строки и отображения строки.
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
код.