首页/系统/Windows 运维速查/字符串方法 Split/Trim/Replace
PowerShell 基础66 条

字符串方法 Split/Trim/Replace

字符串是对象,可直接调用 .NET 方法处理:Split/Trim/Replace/Substring/ToUpper 比文本切割更精确。

Windows 运维速查系统更新于 2026-10-13

字符串方法是什么

PowerShell 里的字符串是 .NET String 对象,可以直接调用 Split/Trim/Replace/Substring/ToUpper 等方法做精确处理。相比 -split、-replace 这类运算符,方法调用不经过正则解析,遇到 . 、$ 、[ ] 之类元字符不会误伤,解析命令输出与日志行时更可控。代价是方法只作用于单个字符串,对数组要自己循环或改用运算符。

基本信息

适用平台PowerShell 5.1 / 7.x,Windows 与跨平台均可用
常用方法$s.Split(分隔符);$s.Trim();$s.Replace(旧,新);$s.Substring(起,长)
关键区别Replace 是字面替换,-replace 是正则替换(后者对所有元素生效)
返回值绝大多数方法返回新字符串,原字符串不变
配套方法ToUpper/ToLower、StartsWith/EndsWith、Contains、IndexOf
常用运算符-split、-replace、-join、-like(支持通配符)

典型使用场景

  • 解析 netstat、ipconfig 等命令输出,按分隔符取字段
  • 清理从 CSV 或文件读进来的行首行尾空白与不可见字符
  • 把路径或版本号按固定位置截取片段
  • 批量替换配置里的占位符,且内容含正则元字符
  • 判断字符串是否以某前缀开头、包含某关键字
  • 把多行输出按固定分隔符拆解成结构化对象供后续统计

常用示例

常用示例
$line = ' 8080: LISTENING '
$line.Trim().Split(':')[0]            # 去空白后取端口号
'abcabc'.Replace('a','x')             # 字面替换,结果 xbcxbc
'D:\app\log\a.log'.Substring(9)       # 从第 9 位起取到结尾,得到 a.log
$s = '10.20.30.40'; $s.Split('.')[-1]     # 按点拆分后取最后一段
'ERROR: disk full' -split ':\s*'      # 运算符版:按冒号加空白拆
'a,b,,c'.Split(',') | Where-Object { $_ }   # 过滤拆分出的空元素
$path = 'C:\data\report.csv'; [IO.Path]::GetFileNameWithoutExtension($path)   # 更稳的取文件名

常用方法对照

方法作用易错点
Split()按字符或字符串拆分传单个字符串时按整串拆,传字符数组时按任一字符拆
Trim()去掉首尾空白只处理两端,中间空白要用 Replace
Replace()字面替换全部匹配大小写敏感,不支持通配
Substring()按起始位置和长度截取越界抛异常,先判 Length
字符串不可变:每次 Trim/Replace 都产生新对象,循环里反复拼接大字符串应改用 -join 或 StringBuilder,否则性能明显下降。取文件名、扩展名这类需求优先用 [IO.Path] 的方法,比手工截取更不容易出错。
方法对数组不生效:对字符串数组调用 .Trim() 在 PowerShell 5.1 会报错,PowerShell 7 支持成员枚举可直接用。要兼容旧版本就写 $arr | ForEach-Object { $_.Trim() }。

易错点

  • Split 传字符数组时是“按集合里任一字符拆”,想按整串 “::” 拆必须显式强转 [string[]],否则得到一堆空元素
  • Substring 起始或长度越界会抛 ArgumentOutOfRangeException,脚本要做长度判断
  • Replace 区分大小写,替换配置键名时漏掉大小写变体会留下半成品
  • 对 $null 调用方法会报错,先从管道过滤空值

数据来源与参考

  • Microsoft Learn:about_Strings 与 String 类方法

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌