条件PowerShell运算符

时间:2014-06-03 14:23:35

标签: powershell

我正在尝试获取标题中没有temptemporary*contractorcontractor*的列表。

此代码正常运行,这意味着我得到一个没有临时记录的列表。

$pTitle = $profile["Title"]
if ($pTitle -ne "Temporary")

但是,当我为通配符添加-or-notlike时,以下代码无效。

$pTitle = $profile["Title"]
if ($pTitle -ne "Temporary" -or $pTitle -notlike "Temporary" -or $pTitle -notlike "contractor" -or $pTitle -notlike "Temp")

2 个答案:

答案 0 :(得分:2)

你真的想要-and。如果当前找到所有单词,您的表达式将仅评估为假。

答案 1 :(得分:0)

$List  = @(1,2,3)

如果我要求您返回列表中的所有项目:
  不等于1
  或
  不等于2
  或
  不等于3

答案将是整个清单

$List  | where { ($_ -ne 1) -or ($_ -ne 2) -or ($_ -ne 3) }
1
2
3

你让你的逻辑运算符混淆了。 看看替换-or和-and