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

powershellmicrosoft technologiessoftware & coding更新于 2026/2/9 22:37:17

PowerShell 中的三元运算符是在 PowerShell 7.0 版本中引入的。三元运算符带有"?"(问号)符号,其语法如下:

[条件] ?(如果为 True 则输出):(如果为 false 则输出)

三元运算符的左侧是条件,右侧是根据条件语句的输出。条件的输出以布尔值的形式表示:如果条件为真,则执行 True 代码块;如果条件为假,则执行 False 代码块。例如:

示例

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

输出

false

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

($a -gt $b) ? ("$a 大于 $b") : ("$a 小于 $b")

输出

5 小于 6

您可以看到代码量只减少了一行,如果我们使用 if/else 条件编写相同的代码,那么

$a = 5; $b = 6

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

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

示例

(Test-Connection google.com -Count 2 -Quiet) ? "Google.Com 服务器可访问" : "Google.Com 服务器无法访问"

输出

Google.Com server is reachable

尽量简化这个三元运算符。如果将三元运算符的右侧部分用于脚本编写,它并不总是有效。


相关文章