Powershell和条件运算符

时间:2012-03-26 12:11:59

标签: powershell

我不理解MSDN上的文档或文档不正确。

if($user_sam -ne "" -and $user_case -ne "")
{
    write-host "Waaay! Both vars have values!"
}
else
{
    write-host "One or both of the vars are empty!"
}

我希望你理解我试图输出的内容。我想填充$ user_sam和$ user_case以访问第一个语句!

4 个答案:

答案 0 :(得分:85)

您可以将其简化为

if ($user_sam -and $user_case) {
  ...
}

因为空字符串强制转换为$false(对此而言$null也是如此)。

答案 1 :(得分:9)

另一种选择:

if( ![string]::IsNullOrEmpty($user_sam) -and ![string]::IsNullOrEmpty($user_case) )
{
   ...
}

答案 2 :(得分:5)

试试这样:

if($user_sam -ne $NULL -and $user_case -ne $NULL)

空变量为$null,然后与“([string]::empty).

不同

答案 3 :(得分:4)

您显示的代码执行您想要的操作。 IFF这些属性在未填写时等于“”。如果它们在未填写时等于$ null,则它们将不等于“”。这里有一个例子来证明你所拥有的东西将用于“”:

$foo = 1
$bar = 1
$foo -eq 1 -and $bar -eq 1
True
$foo -eq 1 -and $bar -eq 2
False