我在一个文件夹中有多个文本文件。对于每一个,我想搜索3个不同的字符串并将这些字符串的计数加在一起,然后将它们输出到文件中。
这适用于计算不同文件中的单个字符串:
for /f "delims==" %%a in ('dir /b "%CD%\*.txt"') do findstr /r /n "^.*SEARCH_STRING_1.*$" "%%~dpnxa" | find /c "SEARCH_STRING_1" >> "%%~dpacounts.txt"
这会导致文件夹中每个文件的新行计数。如何搜索“SEARCH_STRING_1”,“SEARCH_STRING_2”和“SEARCH_STRING_3”,一起添加计数,并以相同的方式将它们输出到文件中?
答案 0 :(得分:2)
如果有两个匹配的行应该只计为一个,或者如果一行不可能包含多个匹配
findstr /c:"string1" /c:"string2" /c:"string3" *.txt | find /c /v "" > counts.txt
如果一行可以包含多个匹配,则必须计算每个匹配
(
findstr /c:"string1" *.txt
findstr /c:"string2" *.txt
findstr /c:"string3" *.txt
) | find /c /v "" > counts.txt
当然,根据您的需要调整findstr
开关