您可以在 PowerShell 中调用它,方法是打开一个 PowerShell 提示符,输入它,然后点击[ENTER]。
我没有看到任何阻止您从 PowerShell 运行该命令的东西。findstr不是本机 cmd 命令,它是与 Windows 捆绑在一起的独立 .exe 文件,位于默认系统路径(System32 目录)中,因此可从 PowerShell 获得。
您可以在本机 PowerShell 中执行此操作,但这将是一个不必要的头痛。你必须做这样的事情
echo 'C:\search Dir1' 'C:\search Dir2' | Get-ChildItem | Select-String ((Get-Content C:\searchlist.txt) -join '|')
但是排除二进制文件会很痛苦,因为AFAIK没有内置的方法来检查文件是文本还是二进制文件。如果您可以依赖扩展名,则可以-Filter *.txt
在Get-ChildItem
.
底线:这不值得。Select-String在匹配模式方面更加通用,因为您可以使用 .NET 正则表达式,但如果您要查找的模式在findstr的有限正则表达式功能范围内,则最好使用findstr来完成此任务,并且您的脚本将是可移植的,因为它始终包含在 Windows 中。