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

PowerShell使用PadRight重命名文件未按指定字符数补零问题求助

问题排查

  • 正则匹配逻辑错误:你写的正则仅匹配了文件名第一个「-」符号,没有捕获「-」后面需要补零的数字段,替换时直接在「-」后面补零,原有的数字完整保留,所以2位数字会变成「00+原2位」共4位的错误结果。
  • 方法使用错误:你需要的是数字左侧补零凑够3位,应该用PadLeft而非PadRight,且Pad系列方法不会自动截断超过指定长度的字符串,需要先提取数字单独处理。

修复后代码

gci "C:\Path\Folder-with-Files" | ren -n {
    [regex]::Replace($_.BaseName, '(?<=^[^-]*-)(\d+)', {
        $args[0].Groups[1].Value.PadLeft(3, '0')
    }) + $_.Extension
}

逻辑说明

  • 正则(?<=^[^-]*-)(\d+):先定位到文件名开头第一个「-」的位置,再捕获后面连续的数字段
  • 对捕获到的数字调用PadLeft(3, '0'):在数字左侧补零,总长度固定为3位
  • 如果需要限制数字最大为3位(比如原数字是4位的场景只保留前3位),可以把格式化行改成$args[0].Groups[1].Value.Substring(0, [Math]::Min(3, $args[0].Groups[1].Value.Length)).PadLeft(3, '0')

内容的提问来源于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 14:24:03