我目前正在运行PowerShell(v3.0)脚本,其中一步是检索目录中的所有HTML文件。这很有用:
$srcfiles = Get-ChildItem $srcPath -filter "*.htm*"
然而,现在我面临着必须识别所有非HTML文件... CSS,Word和Excel文档,图片等。
我想要的东西就像-ne
参数和-filter
参数一样。实质上,给我一切不 "*.htm*"
-filter -ne
不起作用,我随心所欲地尝试了-!filter
,我似乎无法在MSDN上的powershell doc中找到任何内容来否定 {{ 1}}参数。也许我需要管道......?
有人有解决方案吗?
答案 0 :(得分:10)
-Filter
不是正确的方法。请改用-exclude
参数:
$srcfiles = Get-ChildItem $srcPath -exclude *.htm*
-exclude
接受string[]
类型作为输入。这样,您可以排除多个扩展名/文件类型,如下所示:
$srcfiles = Get-ChildItem $srcPath -exclude *.htm*,*.css,*.doc*,*.xls*
..等等。
答案 1 :(得分:5)
我对PowerShell有点新,但是你能管道到where命令吗?
$srcfiles = Get-ChildItem $srcPath | where-object {$_.extension -ne "*.htm*"}
我不确定您将使用“扩展”的实际属性是什么。