在我的剧本中,我试图测试真假。这种语法不正确吗?
$pdaout = ""
if ($pda.ActiveSyncEnabled.tostring() -like "True") {$pdaout = "TRUE"}
if ($pda.ActiveSyncEnabled.tostring() -like "False") {$pdaout = "-"}
write-host $pdaout
答案 0 :(得分:3)
似乎直接检查布尔值而不是使用ToString()会更好:
$pdaout = ""
if ($pda.ActiveSyncEnabled -eq $True) { $pdaout = "TRUE" }
else { $pdaout = "-" }
write-host $pdaout
以下是来自Windows Powershell team re: Boolean Values and Operators
的博客文章答案 1 :(得分:0)
应该是,tostring()
函数除外(使用toString()
以确保区分大小写没有问题)
另外,如果第一个测试成功,您可能希望使用elseif
来避免进行第二次测试:
if ($pda.ActiveSyncEnabled.toString() -like "True") {$pdaout = "TRUE"}
elseif ($pda.ActiveSyncEnabled.toString() -like "False") {$pdaout = "-"}