2012-03-26 40 views
40

Hoặc tôi không hiểu tài liệu về MSDN hoặc tài liệu không chính xác.Powershell-và nhà điều hành có điều kiện

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

Tôi hy vọng bạn hiểu những gì tôi đang cố gắng xuất. Tôi muốn điền $ user_sam và $ user_case để truy cập vào câu lệnh đầu tiên!

Trả lời

64

Bạn có thể đơn giản hóa nó để

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

vì chuỗi rỗng ép buộc để $false (và do đó không $null, cho chuyện đó).

4

Hãy thử như thế này:

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

biến rỗng là $null thì khác với "" ([string]::empty).

2

Các mã mà bạn đã chỉ ra sẽ làm những gì bạn muốn. IFF các thuộc tính đó bằng "" khi chúng không được điền. Nếu chúng bằng $ null khi không điền vào ví dụ, thì chúng sẽ không bằng "". Dưới đây là một ví dụ để chứng minh quan điểm rằng những gì bạn có sẽ làm việc cho "":

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

Tùy chọn khác:

if(![string]::IsNullOrEmpty($user_sam) -and ![string]::IsNullOrEmpty($user_case)) 
{ 
    ... 
} 
Các vấn đề liên quan