PowerShell中的布尔文字是什么?
答案 0 :(得分:121)
$true
和$false
。
但这些都是常数。布尔语没有语言级文字。
根据您需要它们的位置,如果类型必须是布尔值,您也可以使用强制到布尔值的任何内容,例如在需要布尔值(并且没有冲突的重载)或条件语句的方法调用中。例如,大多数非null对象都是true。 null
,空字符串,空数组和数字0
均为假。
答案 1 :(得分:15)
[bool]1
和[bool]0
也有效。
答案 2 :(得分:2)
只是为了添加更多信息:当用作PowerShell(PS)脚本的命令行参数时,布尔文字$true
和$false
也可以正常工作。对于存储在名为installmyapp.ps1
:
param (
[bool]$cleanuprequired
)
echo "Batch file starting execution."
现在,如果我要从PS命令行调用此PS文件,我就可以这样做:
installmyapp.ps1 -cleanuprequired $true
OR
installmyapp.ps1 -cleanuprequired 1
此处1
和$true
相同。
此外,0
和$false
是等效的。
注意:永远不要指望字符串文字true
可以自动转换为布尔值。例如如果我在命令下运行:
installmyapp.ps1 -cleanuprequired true
无法执行以下错误的脚本:
无法处理参数'cleanuprequired'的参数转换。 无法将值“System.String”转换为“System.Boolean”类型。布尔 参数只接受布尔值和数字,例如$ True, $ False,1或0。