2012-03-26 35 views
40

Ya MSDN'deki belgeleri anlamıyorum veya belgeler yanlış.Powershell ve koşul koşulu operatörü

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!" 
} 

Umarız neler çıkarmaya çalıştığımı anlıyorsunuzdur. İlk ifadeye erişmek için $ user_sam ve $ user_case'ı doldurmak istiyorum!

cevap

64

Sen boş dizeler $false için zorlamak çünkü

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

bir basitleştirmeye (ve böylece için, $null yapar edebilirsiniz: Burada ne var "" için çalışacak bu noktayı kanıtlamak için bir örnektir önemli olan).

4

böyle deneyin:

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

boş değişkenler ([string]::empty).

2

Eğer istediğini yapacak göstermiştir kod "" den $null ardından farklıdır. Bu özellikler, "doldurulmadığında" "eşittir". Örneğin, doldurulmadığında $ null değeri varsa, "" eşit olmazlar.

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

Başka bir seçenek:

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