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

如何在.bat脚本中循环实现百余个文件的批量重命名?

Windows批处理循环重命名PDF文件方案

直接用for /L循环遍历编号,自动生成原始文件名和目标文件名,替代逐条编写rename命令的繁琐操作。

实现代码

@echo off
setlocal enabledelayedexpansion

:: 配置参数
set "src_start=1"          :: 原始文件起始数字编号
set "src_end=100"          :: 原始文件结束数字编号
set "dst_start=3002185"    :: 目标文件起始数字编号

:: 遍历每个编号执行重命名
for /L %%i in (%src_start%,1,%src_end%) do (
    :: 生成两位数字的原始文件名(自动补前导零,比如1→01)
    set "src_num=0%%i"
    set "src_num=!src_num:~-2!"
    
    :: 计算对应目标文件的数字编号
    :: 逻辑:目标编号 = 起始目标编号 + 当前编号偏移量(当前编号 - 起始原始编号)
    set /a "dst_num=dst_start + %%i - src_start"
    
    :: 执行重命名
    rename "!src_num!.pdf" "G!dst_num!.pdf"
)

echo 重命名完成!
pause

关键说明

  • setlocal enabledelayedexpansion:开启延迟变量扩展,允许在循环内动态读取和修改变量值,这是循环中处理变量的必要设置。
  • for /L %%i in (起始,步长,结束):循环遍历连续数字,这里从1到100,步长为1。
  • set "src_num=0%%i" && set "src_num=!src_num:~-2!":给不足两位的数字补前导零,确保生成01.pdf、02.pdf...100.pdf这样的原始文件名格式。
  • 编号对应逻辑:如果你的原始01.pdf要对应G3002185.pdf,100.pdf对应G3002284.pdf(共100个文件,编号连续),当前代码刚好匹配。如果需要100.pdf对应G3002285.pdf,只需把dst_start改为3002186即可。

注意事项

  1. 把脚本和所有PDF文件放在同一目录下再执行。
  2. 执行前建议先备份文件,避免因参数错误导致文件丢失。
  3. 如果原始文件名有额外前缀/后缀,修改代码中"!src_num!.pdf"的部分即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 00:52:40