Exif撮影日をファイル名内の日時へ一括書き換えする方法(YY-mm-dd-HH-MM-SS.jpg)【ExifTool】
「画像ファイルのExif撮影日情報を、ファイル名に含まれる"YYYY-mm-dd-HH-MM-SS"部から拾った日時に書き換える方法」を自分用にメモしておきます。
Windowsの前提ですがLinuxなどでも参考になるはず。
具体的には、以下のようなファイル名があった場合、
Screenshot_2022-01-16-22-00-40-696_com.netmarble.enn.jpg
Code language: CSS (css)
その「YYYY-mm-dd-HH-MM-SS」部、つまりこの例では「2022-01-16-22-00-40」を日時として解釈して、Exif撮影日時を「2022年1月16日22時00分40秒」に自動で設定します。
もちろん、複数画像ファイルを一括で設定可能。少し変更すればその他の日時形式にも対応できると思います。
これ、検索しても意外と出てこなかったんですよね。
画像ファイルのExif撮影日情報をファイル名由来の日時に書き換える方法
使うのはおなじみExifTool。
ダウンロード後、Windows版では実行ファイル名がexiftool(-k).exe
になっているので、これをexiftool.exe
にリネームして使いやすくしておきます。
その後、例えばD:\temp\exif
にScreenshot_YYYY-mm-dd-HH-MM-SS-.jpg
という名前のファイルがあり、それらのExif撮影日をファイル名に含まれる日時へ一括更新するには、コマンドプロンプトから以下のコマンドを実行します。
exiftool "-DateTimeOriginal<${filename;$_ =~ s/^Screenshot_(\d{4})-(\d{2})-(\d{2})-(\d{2})-(\d{2})-(\d{2})-.*/$1:$2:$3 $4:$5:$6/}" D:\temp\exif\*.jpg
Code language: HTML, XML (xml)
ファイルの場所やファイル名は各自の環境に合わせて変更してください。
これで、各ファイル名に含まれる年月日時分秒がExif撮影日として書き込まれます。
なお、変更前のファイルのバックアップは同じ場所に末尾「_original」付きのファイル名で保存されます。
こんなの何に使うのかって?最近、過去に撮った膨大な撮影データを整理したり、画像・動画のフローを整備してるんですよねー。
カメラで撮影した写真にはちゃんとExif情報が書かれているケースがほとんどなのですが、スマホで撮ったスクリーンショットはこの限りではなかったりするようで。
特にGoogleフォトから一括ダウンロードすると、Googleフォト上では撮影日データが見えるのにダウンロードしたスクショにはExif撮影日データが無いことがけっこうあるんですよね。