0

我有一个 PowerShell 脚本,它根据选择标准处理目录中的文件。对于一次运行,我需要对所有 HTML 文件执行操作,因此我使用以下代码。

$bkppath = "\\filepath"
$selectionFilter = "*.htm*"  
$srcfiles = Get-ChildItem $bkpPath -filter $selectionFilter

ForEach($doc in $srcfiles) {
     do-stuff
}

对于另一次运行,我需要对目录中与 HTML 无关的任何内容进行操作,因此我想排除*.htm**.js和. 我无法找到将这些多个值应用于我的变量的正确语法。*.ico*.xmlselectionFilter

我需要这样的东西:

$selectionFilter = !("*.htm*" or ".js" or "*.xml" or "*.ico")

或者

$srcfiles = Get-ChildItem $bkpPath -filter !("*.htm*" or ".js" or "*.xml" or "*.ico")

两者都给我一个语法错误。

我无法在 MSDN 上找到任何涉及如何处理这样的多个值的内容。你能指出我正确的方向吗?

4

1 回答 1

0

虽然-exclude *.ico, *.js, *xml要纠正排除的语法,但一个重要的警告是,应用排除的路径名必须以该路径名结尾\*才能使其正常工作。-filter没有这个要求;这就是我搞砸的地方。

$srcfiles = Get-ChildItem $bkpPath\* -exclude *.htm*, *.js, *.xml, *.ico在我的示例中将是正确的语法。

于 2013-09-05T13:13:40.750 回答