如何在Powershell中使用带过滤器数组的Get-ChildItem?

时间:2013-05-16 20:58:53

标签: powershell

删除某些文档的脚本不起作用:

$includeExtensions = @("*.doc", "*.docx")
get-childitem -Path "C:\somedir" -Include $includeExtensions | remove-item

为什么不呢?你如何指定一个扩展数组,然后可以作为参数传递?

2 个答案:

答案 0 :(得分:3)

您可以通过管道Get-ChildItem的结果来过滤所需的扩展名。

$includeExtensions  = @(".doc", ".docx")
Get-ChildItem -Path "C:\somedir" | ?{$includeExtensions -contains $_.Extension} | Remove-Item

答案 1 :(得分:0)

尝试指定它:

Get-ChildItem c:\somedir\* -Inc $includeExtensions | remove-item -whatif

来自Get-ChildItem上的文档:

  

Include参数仅在命令包含时有效   Recurse参数或路径指向目录的内容,   例如C:\ Windows *,其中通配符指定了   C:\ Windows目录的内容。