以拍摄时间来批量重命名照片

经常外出旅行,拍了很多美美哒照片。但由于未及时整理存档,所有的照片都存在了相机的存储卡上。时间一久,自己也记不清照片的拍摄时间了,这给整理归档这些照片造成了很大的不便。当然,可以通过查看照片的exif信息来确定照片的拍摄时间。但exif信息查看步骤复杂,如果一张一张的查看,十分耗费时间。那有没有办法一眼就看出照片的拍摄时间呢?

当然有!设想,如果照片以拍摄时间来命名,那不就可以一眼看出照片的拍摄时间了嘛。但是,目前所有的单反相机、微单相机都是默认用相机内编号来命名照片,大部分的手机对照片也是采用这种命名方式。如果要用照片的拍摄时间来作为文件名,需要我们手动对照片进行重命名。

逐张手动重命名照片肯定是不现实的。这里,我们介绍使用exiftool工具对照片进行重命名。exiftool工具的安装可以参考笔者的另一篇文章《手动为照片添加GPS等Exif信息》。

将待重命名的照片放置在某一文件夹下。笔者这里将照片放在了桌面上的test文件夹下。然后,以管理员身份打开windows的命令行工具,用下面的命令切换到test文件夹下。

cd C:\Users\你的用户名\Desktop\test

在提示符后面输入下列命令(可复制粘贴过去),然后按回车键。代码中的*.JPG表示对目录下所有的照片进行重命名。如果仅对一张照片进行重命名,可以直接指定文件名。需要注意的是,代码可能会区分大小写,即输入*.JPG*.jpg结果可能不一样,具体可以进行尝试。

exiftool '-FileName<IMG_${DateTimeOriginal}' -d "%Y%m%d_%H%M%S%%-c.%%e" *.JPG

上述代码中,IMG_表示照片名的前缀。${DateTimeOriginal}表示获取照片的原始拍摄时间。-d表示设置日期/时间的格式。%Y%m%d_%H%M%S表示具体的日期/时间组织格式。%-c表示如果存在拍摄日期和时间相同的照片时,就为照片名添加一个顺序号。%e表示保留原照片的扩展名。

等代码执行结束后,到放照片的文件夹中看一下,是不是所有的照片都重命名好了。但是目前所有的照片都在一个文件夹中,如果可以将每天的照片存到一个以YYYYMMDD格式命名的文件夹中是不是就更好了呢?exiftool也可以帮助我们实现这个功能。在控制台中输入下面的代码,等待执行结束后,就会发现每天的照片都被放入了对应的文件夹中。

exiftool "-Directory<DateTimeOriginal" -d "%Y%m%d" *.JPG

如果想要在建立的文件夹前添加前缀,需要使用以下的代码。其中F_为文件夹前缀,${}花括号中的DateTimeOriginal是exif标签。需要注意的是,必须要将“-Directory<DateTimeOriginal”中的双引号换为单引号,否则,代码无法被识别。

exiftool '-Directory<F_${DateTimeOriginal}' -d "%Y%m%d" *.JPG

通过以上的方法,我们再整理照片时是不是就不苦恼了呢?