0

在我的脚本中,我试图测试真假。这个语法不正确吗?

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

write-host $pdaout
4

2 回答 2

3

似乎直接检查布尔值而不是使用 ToString() 会更好:

$pdaout = ""

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

write-host $pdaout

这是来自Windows Powershell 团队的博客文章:布尔值和运算符

于 2009-02-11T08:16:39.980 回答
0

应该是,除了可能是tostring()函数(用于toString()确保区分大小写没有问题)

elseif另外,如果第一个测试成功,您可能希望避免进行第二次测试:

if ($pda.ActiveSyncEnabled.toString() -like "True") {$pdaout = "TRUE"}
elseif ($pda.ActiveSyncEnabled.toString() -like "False") {$pdaout = "-"}
于 2009-02-11T08:14:01.500 回答