12

我目前正在运行一个 PowerShell (v3.0) 脚本,其中一个步骤是检索目录中的所有 HTML 文件。这很好用:

$srcfiles = Get-ChildItem $srcPath -filter "*.htm*"

但是,现在我不得不识别所有非 HTML 文件...CSS、Word 和 Excel 文档、图片等。

我想要一些可以与-ne参数结合使用的-filter参数。本质上,给我一切不是的 "*.htm*"

-filter -ne不起作用,我-!filter一时兴起尝试,我似乎无法在 MSDN 上的 powershell doc 中找到任何否定参数的内容-filter。也许我需要管道一些东西......?

有人对此有解决方案吗?

4

2 回答 2

15

-Filter不是正确的方法。改用-exclude参数:

$srcfiles = Get-ChildItem $srcPath -exclude *.htm*

-exclude接受一个string[]类型作为输入。这样,您可以排除多个扩展名/文件类型,如下所示:

 $srcfiles = Get-ChildItem $srcPath -exclude *.htm*,*.css,*.doc*,*.xls*

..等等。

于 2013-06-07T20:07:38.000 回答
6

我对 PowerShell 有点新,但你能通过管道连接到 where 命令吗?

$srcfiles = Get-ChildItem $srcPath | where-object {$_.extension -ne "*.htm*"}

我不确定您将在“扩展”中使用的实际属性是什么。

于 2013-09-24T20:05:05.860 回答