下面的代码允许我使用命令行 (CMD) 在我的所有文件中找到“错误”一词。
find /c "error" C:\MyFiles\*.txt
但我希望它同时查找“错误”和“警告”两个词。
所以我想把这两行作为 1 行命令。
find /c "error" C:\MyFiles\*.txt
find /c "warning" C:\MyFiles\*.txt
我不想看到 2 个结果集。
下面的代码允许我使用命令行 (CMD) 在我的所有文件中找到“错误”一词。
find /c "error" C:\MyFiles\*.txt
但我希望它同时查找“错误”和“警告”两个词。
所以我想把这两行作为 1 行命令。
find /c "error" C:\MyFiles\*.txt
find /c "warning" C:\MyFiles\*.txt
我不想看到 2 个结果集。
这应该可以工作(FINDSTR
在空格处拆分搜索字符串,因此它会查找任一单词)。
findstr "error warning" C:\MyFiles\*.txt
与此等效搜索一样:
findstr /c:"error" /c:"warning" C:\MyFiles\*.txt
但是,有一个错误:为什么这个带有多个文字搜索字符串的 FINDSTR 示例找不到匹配项?. 我不确定上述搜索是否符合指定错误何时可能影响结果的标准。(我不确定搜索字符串之间是否有足够的重叠。)但安全总比抱歉好。
您可以通过使搜索不区分大小写(不确定是否满足您的要求)来消除错误的可能性:
findstr /i "error warning" C:\MyFiles\*.txt
或者您可以将搜索字符串转换为正则表达式。在您的情况下,这很容易实现,因为在您的搜索字符串中没有需要转义的正则表达式元字符。
findstr /r "error warning" C:\MyFiles\*.txt
在您的情况下,您可以简单地使用管道来实现AND运算符。
find /c "error" C:\MyFiles\*.txt | find /c "warning"
根据您的评论,您需要一个OR
操作员
在这种情况下,我会进行搜索findstr
和计数find /c
findstr "error warning" C:\MyFiles\*.txt | find /c /v ""