PowerShell 中的布尔文字是什么?
问问题
111050 次
3 回答
211
$true
和$false
。
不过,这些都是常数。布尔值没有语言级别的文字。
根据您需要它们的位置,您还可以使用任何强制为布尔值的东西,如果类型必须是布尔值,例如,在需要布尔值(并且没有冲突重载)的方法调用中,或者条件语句中。例如,大多数非空对象都是真的。null
,空字符串,空数组和数字0
是假的。
于 2012-05-14T10:06:51.453 回答
20
[bool]1
并且[bool]0
也有效。
于 2012-05-15T11:16:13.557 回答
8
要向现有答案添加更多信息:布尔文字$true
,并且$false
在用作 PowerShell 脚本的命令行参数时也可以按原样工作。对于存储在名为的文件中的以下 PowerShell 脚本installmyapp.ps1
:
param (
[bool]$cleanuprequired
)
echo "Batch file starting execution."
现在,如果我必须从 PowerShell 命令行调用这个 PowerShell 文件,我可以这样做:
installmyapp.ps1 -cleanuprequired $true
或者
installmyapp.ps1 -cleanuprequired 1
这里1
和 $true
是等价的。也,0
和 $false
是等价的。
注意:永远不要期望字符串文字true
可以自动转换为布尔值。例如,如果我运行以下命令:
installmyapp.ps1 -cleanuprequired true
它无法执行脚本并出现以下错误:
无法处理参数“cleanuprequired”的参数转换。无法将值“System.String”转换为类型“System.Boolean”。布尔参数仅接受布尔值和数字,例如 $True、$False、1 或 0。
于 2018-05-15T08:42:32.643 回答