$test = true
if($test) {
Write-Output "true"
} else {
Write-Output "false"
}
Вывод «ложь», но почему? Я назначаю true
и false
свойствам COM-объекта, и он, кажется, работает правильно ... Я что-то не так делаю? Когда целесообразно использовать true
против $true
в PowerShell?
Редактировать: Некоторые пользователи упоминали, что я должен видеть ошибку, но я не вижу. Я пробовал в PowerShell 2.0 (Windows 7) и PowerShell 4.0 (Windows 8.1). И true
и false
меняют свойства COM, как я уже сказал.
Редактировать: Оказывается, мы назначали true
свойствам COM, но они фактически получили false. У нас есть программы gnuwin32 на нашем пути, и две из этих программ имеют значение true и false:
C:\gnuwin32\bin\true.EXE
C:\gnuwin32\bin\false.EXE
Так что на этих компьютерах что-то вроде $x = true
запускает команду C:\gnuwin32\bin\true.EXE
, которая не имеет выходных данных и$x
равно нулю. Никто никогда не догадывался, что свойства com, предназначенные для установки в true, на самом деле не были установлены таким образом.
Ответ, помеченный как правильный, объясняет «истину», и что значение было фактически нулевым значением, котороечто помогло мне разобраться.