2009-02-11 2 views
0

В моем сценарии я пытаюсь проверить истину и ложь. Является ли этот синтаксис неправильным?powershell exchange: если синтаксис оператора?

$pdaout = "" 
if ($pda.ActiveSyncEnabled.tostring() -like "True") {$pdaout = "TRUE"} 
if ($pda.ActiveSyncEnabled.tostring() -like "False") {$pdaout = "-"} 

write-host $pdaout 

ответ

3

Похоже, что было бы лучше, чтобы просто проверить булево значение напрямую, а с помощью ToString():

$pdaout = "" 

if ($pda.ActiveSyncEnabled -eq $True) { $pdaout = "TRUE" } 
else { $pdaout = "-" } 

write-host $pdaout 

Это сообщение в блоге от Windows Powershell team re: Boolean Values and Operators

0

Должно быть, за исключением может быть для tostring() функции (используйте toString(), чтобы убедиться, что нет никакой проблемы с чувствительностью случае)

Кроме того, вы можете использовать elseif делать, чтобы избежать второй тест, если первый был успешным:

if ($pda.ActiveSyncEnabled.toString() -like "True") {$pdaout = "TRUE"} 
elseif ($pda.ActiveSyncEnabled.toString() -like "False") {$pdaout = "-"} 
Смежные вопросы