Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 批处理文件以查找包含HTML字符串的目录中的所有文件,然后将列表输出到文本文件_Search_Batch File - Fatal编程技术网

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