PowerShell中的三元运算符如何工作?

PowerShell版本7.0中引入了PowerShell中的三元运算符。三元运算符具有“?” (问号)符号及其语法是,

[Condition] ? (output if True) : (output if false)

三元运算符的左侧为条件,而基于条件语句则输出右侧。条件的输出为布尔值形式,如果条件为true,则将执行True块;如果条件为false,则将执行False块。例如,

示例

$a = 5; $b = 6
($a -gt $b) ? "True" : "false"

输出结果

false

如您所见,值5小于6,因此上述条件为false,并且执行了第二个块。您还可以修改语句,例如

($a -gt $b) ? ("$a is greater than $b") : ("$a is less than $b")

输出结果

5 is less than 6

您会看到代码量仅减少了一行,并且如果我们使用if / else条件编写了相同的代码,

$a = 5; $b = 6

if($a -gt $b){"$a is greater than $b"}
else{"$b is greater than $a"}

因此,使用三元运算符似乎很简单。您还可以在运算符左侧使用cmdlet,该cmdlet返回布尔值。

示例

(Test-Connection google.com -Count 2 -Quiet) ? "Google.Com server is reachable" : "Google.Com server is unrechable"

输出结果

Google.Com server is reachable

尝试使此三元运算符尽可能简单。如果将三元运算符的右侧部分用于脚本编写目的,则此方法将永远无法正常工作。