Search 批处理文件以查找包含HTML字符串的目录中的所有文件,然后将列表输出到文本文件
我已经尝试过几次了,但是除了“无法打开…”错误之外什么也没有得到,所以我在这里问:Search 批处理文件以查找包含HTML字符串的目录中的所有文件,然后将列表输出到文本文件,search,batch-file,Search,Batch File,我已经尝试过几次了,但是除了“无法打开…”错误之外什么也没有得到,所以我在这里问: 我想在一个满是HTML文件的目录中找到字符串“sometext”的所有实例。然后,搜索结果应该输出到同一目录中的一个文件(D:\myfiles)下面是一个示例批处理文件 @echo off setlocal pushd D:\myfiles rem case-insensitive search for the string "SOME TEXT" in all html files rem in the cu
我想在一个满是HTML文件的目录中找到字符串“sometext”的所有实例。然后,搜索结果应该输出到同一目录中的一个文件(D:\myfiles)下面是一个示例批处理文件
@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转义字符-^对其进行转义。因此,如果要搜索
,必须将其指定为/c:“^”
如果只需要文件名,请将/ip更改为/im。此外,您还可以将/s添加到搜索子文件夹中。通常,您可以使用findstr/?中列出的不同findstr选项
Findstr只能在UTF-8编码文件中找到文本。如果HTML文件是UTF-16编码的(即每个字符占用两个字节),findstr将找不到文本
我还建议先运行命令,而不使用results.txt的管道,以获得正确的findstr选项,并确保它输出您需要的内容。下面是一个示例批处理文件
@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
for %%f in (*.html) do findstr /i /m /p /c:"SOME TEXT" "%%f" >> results.txt
更新:使用findstr命令的一些注意事项
如果字符串包含尖括号,则必须使用CMD转义字符-^对其进行转义。因此,如果要搜索
,必须将其指定为/c:“^”
如果只需要文件名,请将/ip更改为/im。此外,您还可以将/s添加到搜索子文件夹中。通常,您可以使用findstr/?中列出的不同findstr选项
Findstr只能在UTF-8编码文件中找到文本。如果HTML文件是UTF-16编码的(即每个字符占用两个字节),findstr将找不到文本
我还建议先运行命令,但不要将管道连接到results.txt,以获得正确的findstr选项,并确保它输出您需要的内容。Wow,感谢您的快速回答-使用下面显示的代码创建了一个结果文件。但是,它似乎并没有输出文件名,而是输出包含字符串的实际代码@echo off setlocal pushd d:\Sites findstr/ip/c:“*.htm>results.txt popd endlocal,但它只工作一次!当“THE”改为真正的字符串:“我们的课程”时,它停止工作了。没有更多的结果文件,没有错误,什么都没有。考虑到括号可能是问题所在,我将其改为“我们的课程”,但没有运气。即使改回“THE”也不起作用!谢谢,谢谢你的快速回答-使用下面显示的代码创建了一个结果文件。但是,它似乎并没有输出文件名,而是输出包含字符串的实际代码@echo off setlocal pushd d:\Sites findstr/ip/c:“*.htm>results.txt popd endlocal,但它只工作一次!当“THE”改为真正的字符串:“我们的课程”时,它停止工作了。没有更多的结果文件,没有错误,什么都没有。考虑到括号可能是问题所在,我将其改为“我们的课程”,但没有运气。即使改回“THE”也不起作用!谢谢
for %%f in (*.html) do findstr /i /m /p /c:"SOME TEXT" "%%f" >> results.txt