私のスクリプトでは、真と偽をテストしようとしています。この構文は間違っていますか?
$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
さらに、最初のテストが成功した場合に 2 番目のテストを実行しないようにするために、次のように使用することもできます。
if ($pda.ActiveSyncEnabled.toString() -like "True") {$pdaout = "TRUE"}
elseif ($pda.ActiveSyncEnabled.toString() -like "False") {$pdaout = "-"}