约 2210 字

约 11 分钟

#运算符

#简介

运算符用于对值执行计算、比较和逻辑判断。PowerShell 的运算符大多以 - 开头,例如 -eq、-like、-and。PowerShell 7 还引入了三元运算符、空值合并和链式逻辑运算符。

#算术运算符

运算符说明示例
+加法、字符串拼接、数组合并3 + 2
-减法5 - 2
*乘法、字符串重复"ab" * 2
/除法10 / 4
%取余10 % 3
> 10 / 4
2.5
> 10 % 3
1
> "Hi " + "there"
Hi there

#比较运算符

运算符说明
-eq等于
-ne不等于
-gt大于
-lt小于
-ge大于等于
-le小于等于
> 5 -gt 3
True
> "abc" -eq "ABC"
True

默认比较不区分大小写,使用 -ceq、-cne 等前缀 c 的形式可以区分大小写。

#模式与集合运算符

运算符说明
-like通配符匹配,支持 * 和 ?
-match正则表达式匹配
-contains集合是否包含某个值
-in某个值是否在集合中
> "report.txt" -like "*.txt"
True
> "abc123" -match "\d+"
True
> @("a", "b") -contains "b"
True
> "b" -in @("a", "b")
True
  • -match 匹配成功后,$Matches 中会保存捕获结果。
  • -contains 和 -in 是互为反向的写法。

#逻辑运算符

运算符说明
-and逻辑与
-or逻辑或
-not / !逻辑非
-xor逻辑异或
> ($true -and $false)
False
> -not $false
True

#赋值运算符

除了基本赋值 =,还有复合赋值运算符:

> $x = 10
> $x += 5
> $x
15
> $x *= 2
> $x
30

#位运算符

位运算符按二进制位进行计算,常用于标志位处理:

> 5 -band 3
1
> 5 -bor 2
7
> 5 -bxor 1
4
> -bnot 0
-1

#PowerShell 7 新增运算符

#三元运算符

$result = $age -ge 18 ? "adult" : "minor"

#空值合并

?? 在左侧为 $null 时返回右侧的值:

$name = $input ?? "default"

??= 仅在左侧为 $null 时赋值:

$cache ??= "initialized"

#链式逻辑运算符

&& 和 || 根据前一条命令是否成功决定是否执行后一条命令:

Test-Path ./file.txt && Write-Output "存在"
Test-Path ./file.txt || Write-Output "不存在"

#推荐阅读

更新: 2026/11/2

作者: planc

创建: 2026/11/2