Pandora Pocket

IT系と日常系の備忘録。三日坊主。

これまで撮りためてきた画像ファイルを保存していたNASがぶっ飛んで、Amazon Prime Driveから復元した際、ファイルの更新日時が狂ってしまいました。
EXIF自体は生きてるので、エクスプローラの表示列に撮影日時を追加してやればソートもできるんですが、できれば更新日時もそろえておきたかったので、対応した方法を備忘録がてら。

JPEGファイルはちょっと調べただけでも複数ソフトが出てくるので、お好きなものを使えばいいかと。
私はF6Exifというソフトを使いました。JPEGファイルだけならこれで十分かと。

http://www.ryouto.jp/f6exif/

困ったのがRAWファイル。私はNikonユーザーなので、拡張子がNEFなRAWファイルなんですが、上記のソフトは非対応。
いろいろググってたらExiv2というコマンドラインツールを発見。

https://www.exiv2.org/

EXIFをはじめとする画像ファイルのメタデータを更新するためのC++ライブラリらしいんですが、Windows向けのコマンドラインツールも配布されています。

このコマンドラインツールの「-T」オプションがファイルタイムスタンプ更新となっているので、下記のように指定してやれば撮影日時で更新日時が置き換えられます。

exiv2.exe -T ファイル名

なので、下記のようなコマンドを実行してやれば、カレントディレクトリ内のサブディレクトリまで検索して一括でJPEG、RAWファイルの更新日時を撮影日時で置き換えてくれます。便利。

for /R %%f in (*.jpg, *.nef) do exiv2.exe /T "%%f"
(注:バッチでなくコマンドプロンプトで実行する際は%を一つ取ってください。Exiv2にパスが通っていない場合は絶対パス指定するなどしてください。)

私の場合NASにあるファイルだったので、あらかじめ pushd のコマンドでRAWイメージの置いてあるフォルダをネットワークドライブとしてマウントしてから実行。

コマンドサンプル

set path=%path%;D:\Exiv2\bin\  
pushd \\NAS\Images\  
for /R %f in (*.nef) do exiv2.exe /T "%f"