PowerShell 技能连载 - 字符串操作进阶
适用于 PowerShell 5.1 及以上版本
字符串处理是脚本语言最核心的能力之一。虽然 PowerShell 的字符串基础操作大家都会,但很多高效技巧并不为人熟知——比如 -f 格式化操作符、多行 Here-String 的高级用法、StringBuilder 的大批量拼接、编码转换、Base64 处理等。掌握这些进阶技巧,可以大幅简化文本处理任务。
本文将讲解 PowerShell 字符串操作的高级技巧和实用场景。
字符串格式化
1 | # -f 格式化操作符 |
执行结果示例:
1 | Hello, World! Today is 2025-07-04. |
Here-String 高级用法
1 | # 展开 Here-String(双引号)——变量会被替换 |
执行结果示例:
1 |
|
高效字符串处理
1 | # StringBuilder —— 大量字符串拼接 |
执行结果示例:
1 | 生成 1000 行 CSV 耗时:12ms |
编码与 Base64
1 | # 字符串转 Base64 |
执行结果示例:
1 | 原文:Hello, 世界!PowerShell 字符串处理 |
注意事项
- 不可变性:.NET 中字符串不可变,每次拼接都创建新对象。大量拼接使用
StringBuilder - 编码陷阱:PowerShell 5.1 的
Set-Content默认编码不是 UTF-8,显式指定-Encoding UTF8 - Here-String 缩进:
@"和"@必须在行首,不能有前导空格(关闭标记) - 性能比较:
-split/-join比字符串的.Split()/.Join()方法更符合 PowerShell 风格,但底层性能一致 - 比较操作:字符串比较默认大小写不敏感,使用
-ceq/-clike进行大小写敏感比较 - 空值处理:
$null.ToString()会报错,字符串操作前检查$null
PowerShell 技能连载 - 字符串操作进阶
http://blog.vichamp.com/2025/07/04/powershell-string-operations/