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