传递多个值参数
问题描述:
我想传递字符串变量$FileExtension
,如果我传递一个值,如$FileExtension = "*.txt"
那么它工作正常,但如果多个值,如$FileExtension = "*.txt,*.log"
那么它失败了。传递多个值参数
如何解决这个问题?
Get-ChildItem *.* -Include $FileExtension | Select-String -pattern "$SearchString" | group path |
select name | Out-File $OutputLocation'\'$OutputFile
答
的-Include
参数需要string[]
这样你就可以简单的创建一个字符串数组是这样的:
$FileExtension = "*.txt","*.log"
答
@MartinBrandl的解决方案是获得更好的性能,因为它直接进入GET-ChildItem命令。但是通过这个解决方案,你必须在get-childitem命令的路径文件中有“*”。请注意,您可以将-file选项用于get-childitem以获得更好的性能。
另一个解决方法就是使用其中的过滤器扩展这样的命令:
$fileextension=".ini",".jpg"
Get-ChildItem "c:\temp" -file | where Extension -in $fileextension
您可以使用-lisrt到选择字符串命令,然后就可以像删除这组命令:
Get-ChildItem "*.*" -file -Include $fileextension |
Select-String -pattern "$SearchString" -List |
select Path |
Out-File $OutputLocation'\'$OutputFile
如果我想搜索子目录,我该如何在您的代码中应用? – user1902849
添加-recurse选项到get-childitem命令 – Esperento57