189

PowerShell 中的布尔文字是什么?

4

3 回答 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 回答