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为了访问第一个语句!

你可以简化它

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

因为空string强制为$false (对于这一点, $null也是如此)。

另外一个select:

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

尝试像这样:

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

空variables是$null然后不同于“” ([string]::empty).

你已经显示的代码做你想要的。 如果这些属性没有被填充,那么这些属性就等于“”,如果它们在没有被填充时等于$ null,那么它们将不等于“”。 这里有一个例子来certificate你所拥有的“

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