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

PowerShell如何仅对首个“-”分隔符后数字补零批量重命名文件

PowerShell 仅修改第一个短横线后数字补零的批量重命名方案

可直接使用的代码

Get-ChildItem "C:\Path\Folder-with-Files" -File | Rename-Item -NewName {
    [regex]::Replace($_.BaseName, '^([^-]+)-(\d+)', { 
        $groups = $args[0].Groups
        return '{0}-{1:D3}' -f $groups[1].Value, [int]$groups[2].Value 
    }) + $_.Extension
}

代码说明

  • 原代码的问题:使用\-匹配所有短横线,没有限定仅匹配第一个短横线后的数字,同时PadRight是右侧补字符,不符合左补前导零的需求。
  • 新正则^([^-]+)-(\d+)仅匹配从文件名开头到第一个短横线后的连续数字段,不会影响后续的短横线内容:
    • ^ 锚定文件名开头
    • ([^-]+) 捕获第一个短横线之前的所有内容
    • - 匹配第一个出现的短横线
    • (\d+) 捕获第一个短横线后的连续数字
  • 替换时使用D3整数格式化符,自动给数字左补前导零到3位,逻辑更严谨,即使原始数字超过3位也会保留完整数值。

预览修改效果

如果需要先确认修改结果再执行,可以加上-WhatIf参数,不会实际修改文件:

Get-ChildItem "C:\Path\Folder-with-Files" -File | Rename-Item -NewName {
    [regex]::Replace($_.BaseName, '^([^-]+)-(\d+)', { 
        $groups = $args[0].Groups
        return '{0}-{1:D3}' -f $groups[1].Value, [int]$groups[2].Value 
    }) + $_.Extension
} -WhatIf

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:57:01