Powershell - и условный оператор - PullRequest
55 голосов
/ 26 марта 2012

Либо я не понимаю документацию по 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 ]

86 голосов
/ 26 марта 2012

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

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

потому что пустые строки приводят к $false (и так же $null, в этом отношении).

9 голосов
/ 26 марта 2012

Другой вариант:

if( ![string]::IsNullOrEmpty($user_sam) -and ![string]::IsNullOrEmpty($user_case) )
{
   ...
}
5 голосов
/ 26 марта 2012

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

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

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

4 голосов
/ 26 марта 2012

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

$foo = 1
$bar = 1
$foo -eq 1 -and $bar -eq 1
True
$foo -eq 1 -and $bar -eq 2
False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...