我有一个包含多个子文件夹的20,000个文件的文件夹。这些文件具有不同的扩展名,但其内容均为纯文本。我也有约500个名字的文本列表。我想一次在文本列表中搜索所有文件中的每个名称,以确定该名称是否出现在任何文件中。
所需的输出是一个文本列表,该文本列表包含约500行(或搜索了很多名称),每行带有1(如果找到了名称,而不管次数)或0(如果没有找到)。该文件的顺序将与输入文本列表匹配。
例如
searchstring.txt
nameA
nameB
nameC
searchfolder
subfolder1
file.abc (references name A)
file2.xyz (no references)
subfolder2
file.xyz (no references)
file3.xyz (references name A)
subfolder3
file4.abc (no references)
file5.xyz (references name A, name C)
result.txt
1
0
1
理想情况下,将使用具有Windows 7及更高版本上可用命令的批处理文件来进行搜索。该环境可能没有管理员权限。
答案 0 :(得分:0)
对于您在编辑中提供的信息,以下一行可能对您有用。
作为batch-file:
@For /F UseBackDelims^=^ EOL^= %%A In ("searchstring.txt")Do @(FindStr /LIMPS "%%~A" "searchfolder\*.*">Nul&&(Echo 1)||Echo 0)>>"result.txt"
在cmd提示符下输入:
For /F UseBackDelims^=^ EOL^= %A In ("searchstring.txt")Do @(FindStr /LIMPS "%~A" "searchfolder\*.*">Nul&&(Echo 1)||Echo 0)>>"result.txt"