Operators(运算符)
1. 算术运算
+ - * / %基本算术- 幂:
[math]::Pow(2,10)(.NET 方法) - 自增/自减:
$i++、--$i
2. 比较运算(区分类型与大小写)
- 一般比较:
-eq -ne -gt -ge -lt -le - 大小写敏感:在比较符前加
c,如-ceq -cne - 大小写不敏感(默认):加
i,如-ieq -ine(等同默认字符串比较)
3. 通配与正则
- 通配符匹配:
-like、-notlike(* ?) - 正则匹配:
-match、-notmatch,匹配后$Matches自动变量保存分组
4. 包含与集合
- 数组包含:
-contains(左操作数是集合,判断是否包含右边的“元素”) - 反向包含:
-in(右侧是集合) - 子集判断:
Compare-Object或使用集合运算(见下)
5. 字符串运算
- 连接:
'a' + 'b'或内插"$a$b" - 重复:
'a' * 3 # 'aaa'
6. 逻辑运算与位运算
- 逻辑:
-and -or -not(短路求值) - 位运算:
-band -bor -bxor -bnot -shl -shr
7. 赋值与复合赋值
- 基本:
= - 复合:
+= -= *= /= %=
8. 类型与转换
- 类型判断:
-is -isnot - 尝试转换:
-as(失败返回$null)
9. 重定向与管道
- 管道:
|将对象传给下一个命令 - 输出重定向(文本):
> >> 2> 2>> *>>等 - Out-File/Set-Content/Add-Content 提供编码与追加控制
10. 比较对象与排序
powershell
Compare-Object (1,2,3) (2,3,4) # 差异对比
1,5,3 | Sort-Object # 排序(稳定)
Get-ChildItem | Sort-Object Length -Desc11. 模式匹配快捷
powershell
switch -Wildcard ($name) {
'ab*' { 'starts with ab' }
default { 'no match' }
}
switch -Regex ($text) {
'^(?<letter>[a-z])' { $Matches.letter }
}12. 常见陷阱
-contains与-like区分:前者是“集合包含元素”,后者是“字符串通配匹配”。-eq比较数组与标量:会逐项比较并返回布尔数组,在 if 中可能导致意外;可用-contains/-in。- 字符串比较默认不区分大小写,如需精确用
-ceq/-cne。