我应该如何找到包含两个字符串的所有文件?

How should I find all the files that contains two strings?

我的问题是为 Windows 创建一个批处理脚本文件并遍历大量文件并找到每个文件都有包含两个指定字符串的行。所以如果整个文件包含这些字符串,那还不够好,它们应该在同一行。

例如,我有 5 个文件,其中包含以下内容:

1st: apple:green
2nd: apple
green
3rd: green
apple
4th: apple: yellowgreen
5th: apple: green

应该return第一个、第四个和第五个文件的文件名。

这是我的资料:

FINDSTR /s /i /m "apple green" *.txt | FINDSTR "\MyDirectory" >> results.txt

我应该如何修改它才能使其正常工作?

已编辑以使用 FINDSTR

这个正则表达式对我有用: "apple.*green green.*apple"

此外,您使用管道写入文件的命令对我不起作用(也许我遗漏了什么)。如果它对你不起作用,也许这会:

FINDSTR /s /i /m "apple.*green green.*apple" *.txt >> results.txt

findstr /i /s /m /r /c:"apple.*green" /c:"green.*apple" *.txt