我收到了这个管道命令:
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'} | ...