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