告别手动重命名!Win10下用记事本写个.bat脚本,5分钟搞定图片批量编号(001.jpg到999.jpg)

📅 2026/7/24 3:42:15 👁️ 阅读次数 📝 编程学习
告别手动重命名!Win10下用记事本写个.bat脚本,5分钟搞定图片批量编号(001.jpg到999.jpg)

零基础玩转Windows批量重命名:用记事本5分钟打造专属文件编号神器

每次旅行归来或项目结束,手机相册里堆积如山的照片总让人头疼——"IMG_20230401_123456.jpg"这类毫无规律的命名,既难查找又难管理。专业摄影师和自媒体博主们早就用上了批量重命名工具,但大多数普通人面对命令行窗口总是望而却步。其实Windows系统内置的批处理脚本(.bat)就能完美解决这个问题,而且操作简单到就像在记事本里写购物清单。

1. 为什么选择批处理脚本?

想象你面前有300张汽车照片需要整理,手动重命名意味着要重复300次"右键→重命名→输入新名称"的操作。这不仅耗时费力,还容易出错。市面上虽然有不少批量重命名软件,但它们要么功能复杂,要么需要付费,甚至可能携带广告插件。相比之下,Windows自带的批处理脚本具有三大不可替代的优势:

  • 零成本:无需安装任何软件,系统原生支持
  • 高效率:处理1000个文件只需几秒钟
  • 可定制:通过简单修改就能适应各种命名需求

提示:批处理脚本从上世纪80年代的DOS系统延续至今,其稳定性和兼容性经过数十年验证,完全不用担心版本更新导致失效。

2. 五分钟极速入门指南

让我们从一个最基础的场景开始:将文件夹内所有.jpg图片按顺序重命名为car001.jpg、car002.jpg...的格式。请打开记事本,跟着以下步骤操作:

  1. 创建脚本文件

    • 在目标文件夹空白处右键 → 新建 → 文本文档
    • 将新建文件改名为"批量重命名.bat"(注意修改后缀名)
  2. 编辑脚本内容: 双击打开.bat文件,粘贴以下代码:

@echo off setlocal EnableDelayedExpansion set a=1 for /f "delims=" %%i in ('dir /b *.jpg') do ( if not "%%~ni"=="%~n0" ( if !a! LSS 10 ( ren "%%i" "car00!a!.jpg" ) else if !a! LSS 100 ( ren "%%i" "car0!a!.jpg" ) else ( ren "%%i" "car!a!.jpg" ) set/a a+=1 ) )
  1. 执行脚本
    • 保存文件后直接双击运行
    • 观察文件名的神奇变化

3. 代码详解与个性化定制

别看这段代码看起来复杂,其实每行都有明确的用途。让我们拆解这个"文件编号器"的工作原理:

代码片段功能说明可修改参数
set a=1设置起始编号为1可改为任意数字如set a=100
*.jpg仅处理jpg格式文件可改为*.png*vacation*.jpg
car文件名固定前缀可替换为任意文字如product_
00!a!保持三位数编号修改数字0的数量调整位数

进阶技巧

  • 若需要从特定数字开始编号,只需修改set a=1中的数值
  • 要实现倒序排列,将set/a a+=1改为set/a a-=1
  • 添加日期前缀:将ren命令改为"photo_%date:~0,4%%date:~5,2%%date:~8,2%_!a!.jpg"

注意:为避免脚本文件自身被重命名,代码中特别加入了if not "%%~ni"=="%~n0"的判断条件,这是很多初学者容易忽略的安全措施。

4. 常见问题排雷指南

即使是最简单的脚本,在实际操作中也可能遇到各种意外情况。以下是三个最典型的踩坑案例:

场景1:运行后文件名变成乱码

  • 原因:记事本默认保存为UTF-8编码
  • 解决:另存为时选择"ANSI"编码格式

场景2:部分文件没有被重命名

  • 检查点:
    • 文件扩展名是否匹配(区分大小写)
    • 文件是否被其他程序占用
    • 文件名是否包含特殊字符

场景3:需要保留原始文件名部分信息

  • 解决方案:使用%%~ni提取原文件名
  • 示例代码:
ren "%%i" "archive_%%~ni_!a!.jpg"

5. 创意应用场景拓展

掌握了基础操作后,这个小小的批处理脚本还能玩出更多花样:

  • 照片归档系统:结合拍摄日期创建分级文件夹
mkdir "%date:~0,4%年%date:~5,2%月" move "*.jpg" "%date:~0,4%年%date:~5,2%月\"
  • 批量创建文档索引:生成带超链接的HTML目录
echo ^<html^> > index.html for /f "delims=" %%i in ('dir /b *.pdf') do ( echo ^<a href="%%i"^>%%i^</a^>^<br/^> >> index.html )
  • 自动化素材整理:按类型分类后统一命名
for %%e in (jpg png gif) do ( if exist "*.%%e" ( md "%%e_images" 2>nul move "*.%%e" "%%e_images\" ) )

在最近一次产品拍摄项目中,我用批处理脚本将387张照片按拍摄角度自动分类为"front_"、"side_"、"detail_"三组,每组内部连续编号。整个过程不到30秒就完成了原本需要半天的手工操作,客户收到整理好的素材时还以为我们用了什么专业软件。