PowerShell批量重命名文件时替换{2}提示正则无效怎么解决
报错原因
PowerShell 中的 -replace 运算符默认基于正则表达式执行匹配替换,{ 和 } 是正则语法中的量词特殊字符,单独使用 {2} 不符合正则语法规范,因此触发报错。
解决方法
两种方案都可以实现需求,执行前建议先加 -WhatIf 参数预览重命名结果,确认符合预期后再移除该参数正式执行。
- 方案1:转义正则特殊字符后使用
-replace
ls . | Rename-Item -NewName {$_.Name -replace '\{2\}','_'} -WhatIf
- 方案2:使用字符串原生普通替换方法(无需转义特殊字符,更适合纯文本替换场景)
ls . | Rename-Item -NewName {$_.Name.Replace('{2}','_')} -WhatIf
如果需要同时处理当前文件夹及所有子目录内的文件,在 ls 后添加 -Recurse 参数即可。
内容的提问来源于stack exchange,提问作者Codrut Dumbrava
相关产品推荐
相关产品推荐

