Подтвердить что ты не робот

Оператор 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, чтобы получить доступ к первому выражению!

4b9b3361

Ответ 1

Вы можете упростить его до

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

потому что пустые строки принуждают к $false (и, таким образом, $null, если на то пошло).

Ответ 2

Другая опция:

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

Ответ 3

Попробуйте вот так:

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

пустые переменные $null, тогда отличные от "" ([string]::empty).

Ответ 4

Код, который вы показали , будет делать то, что вы хотите. IFF эти свойства равны ", когда они не заполнены. Если они равны $null, если они не заполнены, например, они не будут равны" ". Вот пример, чтобы доказать, что то, что у вас есть, будет работать для" ":

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