如何在.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即可。
注意事项
- 把脚本和所有PDF文件放在同一目录下再执行。
- 执行前建议先备份文件,避免因参数错误导致文件丢失。
- 如果原始文件名有额外前缀/后缀,修改代码中
"!src_num!.pdf"的部分即可。
内容的提问来源于stack exchange,提问作者Michael1834
相关产品推荐
相关产品推荐

