图片批量重命名:命名方案要能排序,排序依据别用文件修改时间
文件夹里一堆 IMG_2031.jpg、DSC00987.jpg、微信图片_20230615.jpg,想找某一天拍的照片只能一张张点开。批量重命名是性价比最高的一次整理——十分钟做完,之后几年都好找。
但绝大多数教程只教"点哪个按钮",没讲两件真正决定成败的事:命名方案要能排序,以及排序依据不能是文件修改时间。这两点没搞对,改完还是一团乱。
先设计名字,再动手
一个好的文件名要满足三个条件:
- 字母序 = 时间序:把日期写成
2024-03-15或20240315,任何系统按名称排序都对;写成15-03-2024就乱了; - 带序号且补零:001、002、003,不是 1、2、10、11——不补零的话
10会排在2前面; - 只用安全字符:避免空格、中文括号、
#、&;Windows 不允许\ / : * ? " < > |,跨平台传文件时中文还可能变乱码。
推荐的三个模板,按用途选:
| 模板 | 产物 | 适合 |
|---|---|---|
{exif-date}_{seq3} | 20240315_001.jpg | 日常照片整理,最通用 |
{exif-date}_{exif-time}_{seq3} | 20240315_142307_001.jpg | 连拍、多机位,绝不重名 |
项目名_{seq4} | product_0001.jpg | 商品图、素材库、交付给客户的图 |
第一种其实是第二种的简化版:同一天拍的照片多于 1 张时,_001 这种序号是必须的,否则模板会生成重复名字。第二种多带了时分秒,好处是光看文件名就知道大概几点拍的,整理婚礼、活动这类连拍场景特别有用。
排序依据:三种时间,只有一个可靠
模板里有 {seq} 序号时,序号按什么顺序编,取决于你选的排序方式。选错了,日期是对的、顺序是乱的。
| 排序依据 | 可靠性 | 会被什么破坏 |
|---|---|---|
| EXIF 拍摄时间(DateTimeOriginal) | 高 | 无 EXIF 的图(截图、转存图);时区设置错 |
| 文件修改时间(mtime) | 低 | 网盘下载、微信接收、拷贝、打开预览都可能重置 |
| 原文件名 | 中 | 多机位拍摄时各自从 0001 开始,无法合并排序 |
实际踩过的坑:一张 2018 年拍的照片,从 iCloud 下载到电脑后,修改时间显示 2024 年。如果按 mtime 排序命名,这张图会被排到 2024 年的那批里,整条时间线就断了。能读 EXIF 就一定读 EXIF。
没有 EXIF 的图怎么办
截图、微信保存的图、被清理过元数据的图,都没有拍摄时间。模板里读出来是空字符串,会得到一堆只有下划线的怪名字。三种兜底策略:
- 保留原名(推荐):模板写成
{exif-date}_{name},有 EXIF 的变成20240315_IMG_4321,没有的至少还是IMG_4321,能认出来; - 用修改时间兜底:只对"确定是当天导入"的批次可用,混批次会错得离谱;
- 跑两遍:第一遍按 EXIF 改(没 EXIF 的跳过),剩下的一批单独按修改时间或手工处理。
第一种最省事,也最不容易制造新麻烦。整理完之后,把没有日期的图挑出来单独放一个文件夹,比硬塞进时间线更清楚。
四个执行步骤(含一条命令版)
路线一:图形工具(推荐大多数人)
- 把照片导入,排序选"按 EXIF 拍摄时间";
- 填模板,设起始序号 1、步长 1、补零 3 位;
- 逐行看预览:重点检查有没有重名(工具通常会标红)、扩展名有没有丢、顺序对不对;
- 确认后执行。执行前先备份原文件夹,或者选"输出到新目录",别直接覆盖。
第 3 步是唯一不能省的一步。批量改名出问题,99% 是预览里那行红字被忽略了——重名会被自动加 _2,看着"能跑通",但顺序已经错位。
路线二:命令行(批量大、要可复现)
装了 ExifTool 之后,一条命令就能按拍摄时间改名并保留扩展名:
exiftool "-FileName<DateTimeOriginal" -d "%Y%m%d_%H%M%S%%-c.%%e" ./photos
%Y%m%d_%H%M%S是时间格式,想加前缀就在前面直接写;%%-c是同秒冲突时的自动序号,连拍必备;%%e保留原扩展名;- 加
-r递归处理子目录。
顺便还能按日期分文件夹:exiftool "-Directory<DateTimeOriginal" -d "%Y/%m/%d" ./photos,一万张图也能几十秒跑完。
五个验收检查(改完必做)
- 抽 3 张打开:确认图片能正常显示,没有因为改名破坏关联;
- 按名称排序:文件列表顺序是否等于拍摄顺序;
- 查重名:搜索文件名里的
_2、(1),这些是冲突的痕迹; - 查无日期:文件名里日期段为空或全是下划线的,挑出来单独处理;
- 跨设备验一次:把文件夹拷到手机或另一台电脑,确认中文和空格没有变成乱码。
第 5 条容易被跳过,但很实际:文件名里的中文和空格,在不同系统间传递时最容易出问题。如果这批图要上传网站、传给别人,建议直接用英文+数字+下划线,一步到位。
命名和图片处理的关系
重命名只改文件名,不重新编码、不动画质、不改元数据——这一点可以放心。但它经常和其他整理动作连着做,顺序有讲究:
- 先改名,再批量处理:改名后再批量压缩/改尺寸,出错时能凭文件名定位是哪一批;
- 改名不会删 EXIF:照片里的 GPS 定位还在。发出去之前要单独清理,方法见EXIF 信息怎么查看与删除;
- 改名后重新上传:如果这些图已经发过网站,改名等于换 URL,旧链接会 404。站内图片改名要配合 301,或者干脆别改已发布的图。
第三条是很多人踩过的坑:整理素材时把已上线的图改了名,页面图片全变红叉。已发布的内容,文件名就是 URL,不要动。
几个常见问题
改完发现改错了,能撤销吗?
看工具。支持"原地改名"的工具通常不提供撤销,但可以用反向规则再跑一遍(把前缀去掉);输出到新目录的工具,原文件还在,删掉新目录即可。最稳的习惯是:执行前复制一份原文件夹,成本是几十秒,收益是不用后悔。
相机文件名里的 IMG_ 前缀能去掉吗?
能,用"查找替换"把 IMG_ 替换成空即可。但建议不要全去掉——保留原文件名的一部分(比如放在末尾)便于溯源,尤其是多机位拍摄、需要和原始素材对账的场景。
不同相机拍的照片,序号会冲突吗?
会。两台机器都可能从 0001 开始,直接合并会重名。解决办法是先按拍摄时间排序,再统一重新编号——这样序号是按时间线重排的,不会冲突,也不会出现"同一时刻两张图"的问题(模板里带时分秒或自动冲突序号即可)。
批量改名会不会改坏图片?
不会。重命名只改文件系统里的名字,文件内容一个字节都不动。真正有风险的是"重命名 + 转换格式/压缩"这类组合操作,那会重新编码,画质和体积都会变。压缩的正确顺序见压缩到 200KB,尺寸调整见批量修改图片尺寸。
手机上有办法批量改名吗?
iOS 自带相册不支持批量改名,需要借助"文件"App 的批量操作或第三方工具;安卓的文件管理器多数支持"批量重命名 + 序号"。数量多的时候,还是导到电脑上做更快——传输方法见手机照片传到电脑。
小结
批量重命名的关键不在工具,在命名方案:日期写成 YYYYMMDD 放最前、序号补零到 3 位、只用安全字符。排序一定选"按 EXIF 拍摄时间",别信文件修改时间;没有 EXIF 的图用"保留原名"兜底。执行前备份、执行后抽查,这套流程跑一次,之后找图就再也不用翻相册了。