■ JPEG更新日時一括変更ツールを作る #1

JPEGファイルのファイル名先頭に "日時" を付加し、その日時でJPEGファイルの更新日時を変更させるツールを作成したい。


概要

カード明細をスキャンし、JPEGファイルとしてPCおよびGoogleフォトに保存している。
JPEGファイルはファイル名よりカードの利用日時がわかるように、ファイル名に 利用日時 を付加している。
例えば "20200102_1122_セブンイレブン.jpeg" のような感じである。

この運用で1つ問題なのは、Googleフォトにアップされた際、JPEGファイルの更新日時で分類されてしまう事である。
このためGoogleフォトの画面より、アップされたレシート画像を1枚ずつ確認し、日付を訂正することをやっていた。

ファイル名に利用日時を付加しているので、この情報を元にJPEGファイルの更新日時を一括で変更できればGoogleフォトも利用日時で分類されるのでは、というのが今回の趣旨である。

仕様

■ 開発言語は?
PowerShell で作ってみる。

■ JPEGファイル仕様
(2020.09.17改版) 拡張子は "jpeg" または "jpg" どちらでも可能とするように修正
・任意のフォルダにスキャンしたJPEGファイルを置くようにする。(例:D:\Scan\Receipt)
・ファイル名は "YYYYMMDD_HHMM_名称.jpeg (または .jpg)" の書式とする。
 "YYYYMMDD" はカード利用日
 "HHMM" はカード利用時刻 (秒は含めない)。時刻不明の場合は"1200"を指定する事とする。
 "名称" は任意の名称。省略しても良いが、名称先頭の"_"は省略しないこと。
  例) "20200102_1122_.jpg"

■ PowerShellファイル仕様
PowerShellファイル名と書式:ChangeJpegDate.ps1 (JPEGファイルパス)
引数の"JPEGファイルパス"にスキャンしたJPEGファイルを確認したパスを指定する。
この引数は必須とする。

■ 処理内容
1) 引数で指定したフォルダ内の 99999999_9999_xxx.jpeg (または .jpg) の名前を持つファイルを取得
 サブフォルダは対象外。
2) ファイル名先頭8桁を "日付"、10桁~13桁目を "時刻"(秒は00とする) として値を取得
 正しい日時でない場合(13月40日や30時60分などあり得ない日時の場合)、次のファイルへ進む
3) 取得した日時でファイル名の更新日時を変更
4) 処理結果をファイル単位で画面に表示

#2 へ続く。


自作プログラム, PowerShell
2020.09.17改版

0 件のコメント:

その他の記事