2009-02-11 34 views
0

在我的脚本中,我试图测试真假。这个语法不正确?powershell exchange:if语句的语法?

$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 = "-"}