经常外出旅行,拍了很多美美哒照片。但由于未及时整理存档,所有的照片都存在了相机的存储卡上。时间一久,自己也记不清照片的拍摄时间了,这给整理归档这些照片造成了很大的不便。当然,可以通过查看照片的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
如果在重命名照片的同时可以将照片按拍摄日期放到名为YYYYMMDD的文件夹中,则更加省时省力了。通过下面的代码,就可以同时实现这两个功能。在
%Y%m%d/IMG_%Y%m%d_%H%M%S%%-c.%%中,/前的%Y%m%d表示文件夹的名称,为照片的拍摄日期。/后的部分表示重命名后照片的名称。
exiftool -r '-FileName<DateTimeOriginal' -d "%Y%m%d/IMG_%Y%m%d_%H%M%S%%-c.%%e" *.JPG
其中,-r表示遍历所有目录和子目录,如果仅处理当前目录下的照片,不需要加该参数。通过以上的方法,我们再整理照片时是不是就不苦恼了呢?