将多个值传递给参数

时间:2017-02-20 06:52:46

标签: powershell

我想将字符串传递给变量$FileExtension,如果我传递单个值,例如$FileExtension = "*.txt",那么它工作正常,但是如果多个值,例如{{ 1}}然后它失败了。

如何解决这个问题?

$FileExtension = "*.txt,*.log"

2 个答案:

答案 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