You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell递归批量重命名文件:多文本单次替换方案问询

批量文件名多组替换的高效PowerShell方案

针对大量文件的批量重命名需求,你可以通过一次遍历文件系统+多轮替换的方式提升效率,避免重复递归扫描。以下是两种可行实现:

方案1:链式调用Replace方法(适合少量替换规则)

直接在-NewName的脚本块中连续调用String.Replace方法,依次完成多组文本替换,仅需一次文件遍历:

Get-ChildItem -Recurse -Include *.* | Rename-Item -NewName {
    $_.Name.Replace("__a1", "__a2").Replace("__b1", "__b2").Replace("__c1", "__c2")
} -WhatIf
  • 说明:String.Replace会返回修改后的字符串,因此可以链式调用,按顺序完成所有替换规则
  • -WhatIf参数用于预览重命名结果,确认无误后可移除该参数执行实际修改

方案2:哈希表定义替换规则(适合大量替换规则)

用哈希表统一管理所有替换规则,通过循环完成批量替换,规则维护更便捷:

# 定义替换规则:键=待替换的旧文本,值=替换后的新文本
$replaceRules = @{
    "__a1" = "__a2"
    "__b1" = "__b2"
    "__c1" = "__c2"
    # 可按需添加更多替换规则
}

Get-ChildItem -Recurse -Include *.* | Rename-Item -NewName {
    $newName = $_.Name
    foreach ($rule in $replaceRules.GetEnumerator()) {
        $newName = $newName.Replace($rule.Key, $rule.Value)
    }
    $newName
} -WhatIf
  • 说明:PowerShell默认哈希表无序,若需指定替换顺序,可改用有序哈希表[ordered]@{}定义规则
  • 若需包含无扩展名文件,可将-Include *.*改为-Include *或直接移除该参数

内容的提问来源于stack exchange,提问作者WOEWE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 11:37:16