#运算符
#简介
运算符用于对值执行计算、比较和逻辑判断。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 "不存在"