批处理文件,用于查找包含HTML字符串的目录中的所有文件,然后将列表输出到文本文件

时间:2009-09-09 17:22:08

标签: search batch-file

我已经做了几次尝试,但除了“无法打开......”之外什么都没有,所以我在这里问:

我想在一个充满HTML文件的目录中找到字符串“SOME TEXT”的所有实例。然后搜索结果应该输出到同一目录(D:\ myfiles)

中的文件

2 个答案:

答案 0 :(得分:3)

这是一个样本批处理文件,可以解决这个问题。

@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命令的一些注意事项。

如果您的字符串包含尖括号,则必须使用CMD转义字符 - ^来转义它们。因此,如果您要搜索<TITLE>,则必须将其指定为/c:"^<TITLE^>"

如果您只想要文件名,请将/ ip更改为/ im。此外,您可以添加/ s来搜索子文件夹。通常,您可以使用findstr /?.

中列出的不同findstr选项

Findstr将仅在UTF-8编码文件中找到该文本。如果HTML文件是UTF-16编码的(即每个字符占用两个字节),findstr将找不到文本。

我还建议首先运行命令而不用管道连接到results.txt以获得正确的findstr选项,并确保它输出你需要的内容。

答案 1 :(得分:0)

for %%f in (*.html) do findstr /i /m /p /c:"SOME TEXT" "%%f" >> results.txt