我已经做了几次尝试,但除了“无法打开......”之外什么都没有,所以我在这里问:
我想在一个充满HTML文件的目录中找到字符串“SOME TEXT”的所有实例。然后搜索结果应该输出到同一目录(D:\ myfiles)
中的文件答案 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