运算符总览
PowerShell 的运算符分算术、比较、逻辑、赋值与字符串几类。最容易与其它语言混淆的是比较运算符:它不用符号而是以连字符开头的单词形式,例如 -eq、-gt、-like,冒号里的等号在 PowerShell 里是赋值而不是比较。
基本信息
| 适用平台 | Windows PowerShell 5.1 与 PowerShell 7 |
|---|---|
| 算术 | + - * / %,另有 -shl 与 -shr 位移 |
| 比较 | -eq -ne -gt -ge -lt -le,另有 -like -match -contains -in |
| 逻辑 | -and -or -not,以及 -xor |
| 赋值 | = += -= *= /= ++ -- |
| 字符串 | -join -split -replace -contains -in |
| 大小写 | 默认不区分,加 c 前缀如 -ceq -clike 表示区分 |
典型使用场景
- 条件判断:比较版本号、大小与状态值
- 字符串筛选:用 -like 做通配匹配,-match 做正则匹配
- 集合判断:-contains 与 -in 判断元素是否属于某个集合
- 字符串加工:-split 拆分、-join 拼接、-replace 替换
- 布尔组合:用 -and 与 -or 组合多个条件
常用示例
常用示例
# 算术与优先级,先乘除后加减
3 + 4 * 2
# 字符串拆分与拼接
'a,b,c' -split ','
1..5 -join '-'
# 比较:判断服务是否在运行
(Get-Service Spooler).Status -eq 'Running'
# 通配匹配与正则匹配
'D:\logs\app.log' -like '*.log'
'v1.2.3' -match '^v\d+'
# 集合判断
@('a','b') -contains 'b'
# 区分大小写
'ABC' -ceq 'abc'运算符分类速查
| 类别 | 常用写法 | 典型用途 |
|---|---|---|
| 算术 | + - * / % | 数值计算 |
| 比较 | -eq -ne -gt -lt | 数值与字符串比较 |
| 通配与正则 | -like -match | 模糊匹配与模式匹配 |
| 逻辑 | -and -or -not | 组合条件 |
| 字符串与集合 | -split -join -replace -contains -in | 文本加工与成员判断 |
比较运算符统一以连字符开头,需要区分大小写时加 c 前缀,例如 -ceq、-clike、-cmatch;默认形式在多数场景下不区分大小写。
不要用双等号或单个大于号做比较:前者在 PowerShell 里是赋值,后者是重定向符号,误用会把值写进变量或文件,反而看不到报错。
比较运算符对照
| 写法 | 含义 | 示例 |
|---|---|---|
| -eq | 等于 | 状态等于运行中 |
| -ne | 不等于 | 名称不等于空 |
| -gt 与 -ge | 大于与大于等于 | 内存大于阈值 |
| -lt 与 -le | 小于与小于等于 | 剩余空间小于下限 |
| -like | 通配匹配 | 以日志后缀结尾 |
数值比较与字符串比较要分清:从文本文件或 CSV 读回的字段都是字符串,直接比较会按字符逐位判断,涉及数值时应先做类型转换再比较。