Вот пример командного файла, который сделает свое дело.
@echo off
setlocal
pushd D:\myfiles
rem case-insensitive search for the string "SOME TEXT" in all html files
rem in the current directory, piping the output to the results.txt file
rem in teh same directory
findstr /ip /c:"SOME TEXT" *.html > results.txt
popd
endlocal
Обновление : Некоторые предостережения при использовании команды findstr.
Если ваша строка содержит угловые скобки, вы должны экранировать их, используя escape-символ CMD - ^. Итак, если вы хотите найти <TITLE>
, вы должны указать его как /c:"^<TITLE^>"
.
Если вам нужны только имена файлов, измените / ip на / im. Также вы можете добавить / s для поиска подпапок. В общем, вы можете поиграть с различными опциями findstr, перечисленными в findstr /?.
Findstr найдет текст только в файлах в кодировке UTF-8. Если файлы HTML имеют кодировку UTF-16 (т. Е. Каждый символ занимает два байта), findstr не найдет текст.
Я бы также предложил сначала запустить команду без передачи в файл results.txt, чтобы получить правильные параметры findstr и убедиться, что она выводит то, что вам нужно.