在 PowerShell 中通过多种搜索模式搜索文件

在 PowerShell 中通过多种搜索模式搜索文件

我收到了这个管道命令:

Get-Childitem -Path E:\Shares\ -Recurse -Filter *Synformulas* | Export-csv -Path E:\result.csv

现在的情况是,我需要搜索多个搜索词。我无法简单地将它们附加到 -Filter 标志。

谁能告诉我如何以递归方式在文件夹中搜索具有多个搜索词的文件名?

答案1

-筛选参数仅接受单个字符串。但是,-包括参数接受多个值,但限定-小路争论。

这个想法是附加\*到路径的末尾,然后使用 -包括选择多个通配符字符串。请注意,除非字符串包含空格或特殊字符,否则参数中不需要用引号括住字符串。

例子:

Get-Childitem -Path E:\Shares\* -Recurse -Include *Synformulas*, *otherformula* | Export-csv -Path E:\result.csv

答案2

一种方法可能只是将文件过滤作为管道中的一个步骤:

Get-Childitem -Path E:\Shares\ -Recurse | 
  Where-Object { $_.Name -Like "*Foo*" -or $_.Name -Like "*Bar*" } |
  Export-csv -Path E:\result.csv

-Match如果您愿意,这还可以让您使用正则表达式过滤:

... | Where-Object {$_.Name -match 'Foo|Bar'} | ...

相关内容