Ответ 1
Вы можете упростить его до
if ($user_sam -and $user_case) {
...
}
потому что пустые строки принуждают к $false
(и, таким образом, $null
, если на то пошло).
Либо я не понимаю документацию на 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) {
...
}
потому что пустые строки принуждают к $false
(и, таким образом, $null
, если на то пошло).
Другая опция:
if( ![string]::IsNullOrEmpty($user_sam) -and ![string]::IsNullOrEmpty($user_case) )
{
...
}
Попробуйте вот так:
if($user_sam -ne $NULL -and $user_case -ne $NULL)
пустые переменные $null
, тогда отличные от "" ([string]::empty).
Код, который вы показали , будет делать то, что вы хотите. IFF эти свойства равны ", когда они не заполнены. Если они равны $null, если они не заполнены, например, они не будут равны" ". Вот пример, чтобы доказать, что то, что у вас есть, будет работать для" ":
$foo = 1
$bar = 1
$foo -eq 1 -and $bar -eq 1
True
$foo -eq 1 -and $bar -eq 2
False