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

使用Command Prompt/Batch批量重命名文件并保持序号位数一致

批处理批量重命名照片:解决序号前导零与位数一致问题

你原来的代码问题出在序号没有自动补前导零,当数字从两位数跳到三位数(比如99→100)时,没法自动维持固定位数的格式。下面是修改后的代码,完全支持自定义前缀、起始序号,还能保持序号的固定位数:

@echo off
pushd %~dp0
setlocal EnableDelayedExpansion

:: --- 这里是配置区,按需修改即可 ---
set "prefix=Goodlooking "  :: 文件名前缀,注意末尾的空格如果需要就保留
set "start_num=98"         :: 起始序号
set "digit_length=4"       :: 序号的固定位数(比如4位就是0098、0100这种格式)
:: --- 配置区结束 ---

set "current_num=%start_num%"

:: 遍历当前目录下所有JPG文件(要递归子目录的话,把下面的行改成 for /r %%i in (*.jpg) do)
for %%i in (*.jpg) do (
    :: 生成带前导零的固定位数序号:先补足够多的零,再截取最后N位
    set "padded_num=0000000000!current_num!"  :: 这里补10个零,足够覆盖大部分位数需求
    set "padded_num=!padded_num:~-%digit_length%!"
    
    :: 执行重命名
    ren "%%i" "!prefix!!padded_num!.jpg"
    
    :: 序号自增
    set /a current_num+=1
)

endlocal
popd
echo 重命名完成!
pause

代码说明

  1. 配置区简单易用:你只需要修改prefix、start_num、digit_length三个变量就行:
    • 比如想把前缀改成Vacation_,起始序号从1开始,位数设为3,就会生成Vacation_001.jpg、Vacation_002.jpg...
    • 如果不需要前缀末尾的空格,直接去掉prefix值里的空格即可。
  2. 自动补前导零:通过先给序号补一串足够多的零,再截取最后digit_length位的方式,不管序号是1位、2位还是多位,都能自动变成固定位数的格式(比如98→0098,100→0100)。
  3. 可选递归处理:如果需要处理子目录里的照片,把for %%i in (*.jpg)改成for /r %%i in (*.jpg)就行。

注意事项

  • 运行前建议先备份照片,避免重命名过程中出现意外(比如文件名重复导致的失败)。
  • 批处理会处理当前目录下所有JPG文件,如果你只想处理特定前缀的原文件(比如原文件是IMG_*.JPG),可以把(*.jpg)改成(IMG_*.jpg)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:40:03