我想将字符串传递给变量$FileExtension
,如果我传递单个值,例如$FileExtension = "*.txt"
,那么它工作正常,但是如果多个值,例如{{ 1}}然后它失败了。
如何解决这个问题?
$FileExtension = "*.txt,*.log"
答案 0 :(得分:1)
-Include
参数需要string[]
,因此您可以像这样简单地创建一个字符串数组:
$FileExtension = "*.txt","*.log"
答案 1 :(得分:1)
@MartinBrandl的解决方案更适合性能,因为它直接进入get-childitem命令。但是有了这个解决方案,你必须拥有" *"在get-childitem命令的路径文件中。请注意,您可以在get-childitem中使用-file选项以获得更好的性能。
另一个解决方案是使用where命令进行过滤器扩展,如下所示:
$fileextension=".ini",".jpg"
Get-ChildItem "c:\temp" -file | where Extension -in $fileextension
您可以使用-lisrt into select-string命令,然后可以删除group命令:
Get-ChildItem "*.*" -file -Include $fileextension |
Select-String -pattern "$SearchString" -List |
select Path |
Out-File $OutputLocation'\'$OutputFile