写真整理の話
こんばんは、れどです。
今日は写真の整理方法について地味に悩んでいるという話をします。
フォルダ分け
写真の整理、面倒ですよね。僕の場合、年間でだいたい100日前後、枚数にして2万枚くらい撮るのでついつい整理を後回しにしがちです。
撮影したデータをSDカードからHDDに移すわけなんですが、そのときに撮影日ごとにフォルダを分けて保存していきます。こんな感じで、西暦4桁のフォルダの下に月日4桁のフォルダを作って、その中に撮影したデータを格納していきます。
撮影日ごとにコピーを繰り返すのは、結構面倒くさいんですよね。
便利なツールもある、が…
同じような苦労をしている人は多いようで、探してみると便利なツールが出てきます。
この「簡単デジカメ写真整理」は指定したフォルダに存在する写真を、撮影日ごとのフォルダに分けてコピーしてくれるという優れものです。じゃあこれを使えばいいじゃんとなるのですが、(実際しばらく使っていたのですが、)これ微妙に僕が欲しいフォルダ形式がないんですよね…。
なぜか YYYY/MMDD だけない。(マイナーな分け方なのか?)
今更命名ルールを変えるのもちょっと…。ということで、しばらくはYYMMDDで出して、後からYYだけ消すという方法をとっていました。
LightroomClassicを使うという方法もあるが…
こんな需要をAdobeさんが見逃すはずもなく、LightroomClassicにはSDカードに入っているデータをHDDにコピーする機能がついています。ただこれも欠点があり、微妙に欲しいフォルダ形式がありませんでした。
さらに、これでコピーしてみたところ日付がずれる現象を確認。ちょっと実用的でないと判断し、Lightroomで整理するのはやめました。
ないものは作るか
ということでツールを自作することにしました(なるべく手間をかけずに)
調べてみると世の中には写真のメタデータを表示してくれるソフトが有ることがわかりました。それがこのExiv2。
EXIF等のメタデータを読み書きできるらしいです。今回は撮影した日付を読めればOK。早速 2019msvc64 をダウンロードして、binにパスを通してやると動きました。
欲しい撮影日時情報は「Image timestamp」に書いていますね。その他にもシャッタースピードやF値やレンズ情報などが書かれていることがわかります。
Exiv2が使えそうなので、以下のようなバッチファイルを用意します。カレントディレクトリ以下のjpeg/RAF/xmpファイルすべてに対して、exiv2.exeで出てきた標準出力を"timestamp"で検索して日付を抜き出す操作と、日付のフォルダを作る操作と、作ったフォルダにコピーする操作をしています。
[to_hdd.bat]
set sd_dir=G:
set hdd_dir=M:\photo_ssd
pushd %sd_dir%
for /r %%A in (*.jpg *.RAF *xmp) do (
for /f "tokens=3,4,5 usebackq delims=: " %%a in (`exiv2.exe %%A ^| findstr "timestamp"`) do (
echo %%a
echo %%b%%c
mkdir %hdd_dir%\%%a\%%b%%c
copy %%A %hdd_dir%\%%a\%%b%%c
)
)
popd
で、これをデスクトップにでも保存して、ダブルクリック!!
あとは自動でSDカード内部にある写真が欲しいフォルダに整理されて移動されるというわけです。や、それにしても「標準出力を変数に代入する」のにforが出てくるのが謎ですねー。forの挙動については以下のサイトが大変参考になりました。
謎の仕様に苦しめられたので、バッチファイルにはしばらく手を出さないと決めました。すでにある名前のフォルダをmkdirしてる?はい、そこは手抜きました・・・。今回は動けばなんでもよかったので。
まとめ
微妙に不便なことってありますね。出来ることから少しずつ改善していきましょう。
バッチファイルを置いときます。ディレクトリ名をいじって使ってみてください。
この記事が気に入ったらサポートをしてみませんか?