我正在使用此命令
Where {$_.Extension -match "zip||rar"}
但也需要使用此命令
Where {$_.FullName -notlike $IgnoreDirectories}
我应该使用&&
中的II或IIWhere {$_.Extension -match "zip||rar"} && Where {$_.FullName -notlike $IgnoreDirectories}
或
Where {$_.Extension -match "zip||rar"} || Where {$_.FullName -notlike $IgnoreDirectories}
我想要完成的是提取每个zip和rar文件,但我想跳过在某些目录中提取zip或rar文件。对此最好的解决方案是什么?
答案 0 :(得分:1)
如有疑问,请阅读documentation。
Windows PowerShell支持以下逻辑运算符。
-and
逻辑和。仅当两个语句都为TRUE时为TRUE。-or
逻辑或。当其中一个或两个语句都为TRUE时为TRUE。-xor
逻辑独占或。仅当其中一个语句为TRUE且另一个语句为FALSE时为TRUE。-not
逻辑不是。否定其后的陈述。!
逻辑不是。否定其后的陈述。 (与-not
相同)
将两个子句放在同一个scriptblock中,并将它们与相应的逻辑运算符连接起来。对于两个子句之间的逻辑AND,请使用-and
:
Where-Object {
$_.Extension -match "zip||rar" -and
$_.FullName -notlike $IgnoreDirectories
}
对于两个子句之间的逻辑OR使用-or
:
Where-Object {
$_.Extension -match "zip||rar" -or
$_.FullName -notlike $IgnoreDirectories
}
在你的情况下,它可能是前者。
请注意,由于两个zip||rar
之间的空字符串,您的正则表达式|
会匹配任何扩展名。要仅匹配扩展名为.rar
或.zip
的项目,请移除一个管道:$_.Extension -match "zip|rar"
。