管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

Exifの撮影日時からフォルダを作成して画像をコピーする

画像管理はWindows10の「フォト」アプリを利用しています。
フォトアプリの画像管理のベースは撮影日時らしく、インポート機能を利用すると、撮影日ごとにフォルダが作られ、画像が振り分けられます。
インポート機能では、リムーバブルメディア以外のインポートは、フォルダへの参照が作られるだけの様で、管理フォルダ配下に集約したい自分の思っていた挙動ではなく...既にPC内に存在する画像もフォトアプリの管理ができるよう、Powershellで撮影日ベースの仕分けスクリプトを書いてみました。

方針

  • 元画像フルパス(a)、コピー先の親フォルダパス(b)をインプットにする
  • (a)からExif情報を基に撮影日時を取得する。Exifの撮影日時について☟

  • 撮影日時を基に、「yyyy-mm-dd」形式のフォルダ名(c)を作成する
  • (b)に、(c)フォルダが存在するかチェックし、存在しなければ作成
  • (a)を、(b)の(c)フォルダにコピーする

コード

フォルダ作成要否チェック用のパラメータをつけてみた

実行結果

# 実際にフォルダ作成、コピーを実行する場合
PS D:\Documents\scripts> .\撮影日で写真を仕分け.ps1 -filename "C:\Users\hoge\Pictures\2015\2015-01-02\IMG_20150102_180534.jpg" -targetDir D:\
作成します:D:\2015-01-02

# 実際にフォルダ作成、コピーを実行しない場合
PS D:\Documents\scripts> .\撮影日で写真を仕分け.ps1 -filename "C:\Users\hoge\Pictures\2015\2015-01-02\IMG_20150102_180534.jpg" -targetDir D:\ -test
作成します(テスト):D:\2015-01-02