スマホ写真を整理|Windowsバッチでやや自動化

月次バッチファイル
月次バッチファイル

みなさんこんにちは、10月に入り涼しくなってきました。最近、庭の苔、庭で出会った虫たち、庭の草花、育てているコオロギ、普段の食事などなど、スマホでバチバチ撮影しているので整理が面倒なヨネですが、皆さんいかがお過ごしでしょうか?

Googleフォトで無料で高画質で無制限でバックアップできますが、この高画質といっても圧縮されてしまっています。無料で写真の元データをそのまま保存するにはどうしても自分で保存させるしかありません。お金持ちになったら、有料サービスを利用してやる!

昔は日付毎にフォルダ分けとマメな事をしていたのですが、いつまでたっても整理できずに終わってしまい、スマホに写真データが大量になり、スマホの買い替え時に「未整理フォルダ」を作成してずどんと入れておしまいというパターンが多くなってしまいます。

ということで、毎月月初にスマホ写真のプレビュー見ながら、「Ctrl」ボタンは「Shift」ボタンを利用して移動させ整理してます。

私の場合は「虫爬虫類系」(爬虫類は現在断念中)、「庭植物系」、「ご飯系」を気づいたら撮影しているので毎月「202009自宅庭植物(09月分)」「202009虫爬虫類(09月分)」「202009弁当&自宅飯(09月分)」フォルダを作成し、ずどんと移動させているところです。

どうせ毎月決まったフォルダを作成するのだから、この部分を自動化させたいなということで、何十年かぶりにWindowsのバッチファイル(bat)を作成してみました。MS-DOSみたいな、Windowsでいうところのコマンドプロンプトで実行するみたいな、プログラム(スクリプト)です。

実際運用中のバッチ内容

rem 作成年月日:2020年10月03日
rem バッチ作者:ヨネ(https://yone.m-kyoei.com/)
rem バッチ概要:前月の名前でフォルダを複数作成させる。
rem バッチ目的:スマホの写真を毎月月初に昨月分の写真をカテゴリわけしたフォルダへ移動し保存するためのもの。

rem 実行したコマンドを画面表示させない。
@echo off

rem 環境変数をローカル(バッチファイル内)のみに限定する。
setlocal

rem date形式「2020/10/03」の「0」番目から「4」文字取り出す。「2020」。
set year_data=%date:~0,4%

rem date形式か「5」番目から「2」文字を取り出す。「10」。
set /a mon_t1=%date:~5,2%-1
rem 先頭に「0」を連結させる。005や010など。
set mon_t2=0%mon_t1%
rem 後ろから「2」番目から「2」文字を取り出す。05や10など。
set mon_data=%mon_t2:~-2,2%

set aaa1=”自宅庭植物(”
set bbb1=”虫爬虫類(”
set ccc1=”弁当&自宅飯(”

set ddd2=”月分)”

set aaa=%year_data%%mon_data%%aaa1%%mon_data%%ddd2%
set bbb=%year_data%%mon_data%%bbb1%%mon_data%%ddd2%
set ccc=%year_data%%mon_data%%ccc1%%mon_data%%ddd2%

rem フォルダ(ディレクトリ)を作成。make directory。
mkdir %aaa%
mkdir %bbb%
mkdir %ccc%

ダウンロード用バッチファイル(batファイル)

バッチファイルをダウンロードできるようにアップしようとしたところ、下の通りエラーがでてワードプレス(Wordpress)へバッチファイルをアップできませんでした。拡張子を「.bat」とかから適当に「.XXX」と変更してもだめでした。

バッチファイルアップロードできず
バッチファイルアップロードできず

ということで、上のバッチファイルの内容をテキストファイルにコピペして、テキストファイルのファイル名を「月初写真フォルダ整理.bat」などに変更して、ファイルをダブルクリックすれば、バッチファイルと同じ場所にフォルダが3つできるはずです。

適宜編集して利用してみてください。

躓きポイント1|文字コード

デスクトップを右クリックして、新規作成を選んで、テキストドキュメントを選ぶと、「新しいテキスト ドキュメント.txt」ってできるので、それを「月初写真フォルダ整理.bat」とかにして、クリックしてテストしてました。

編集するときは、「月初写真フォルダ整理.bat」のアイコンを右クリックして「編集」にするとデフォルトの「メモ帳」が立ち上がり編集していたわけです。

いよいよファイル名を吐き出してフォルダを作ってみたところ・・・・

文字化け
文字化け

フォルダ名が文字化けしてました。なんじゃらほい、ということで、愛用テキスト編集ソフト「TeraPad」で空けたところ、文字コードが「UTF-8N」(ちなみに改行コードはCRLF)となっていました。

ん、コマンドプロンプトは古い技術だから「SJIS(Shift-JIS)」ぽいよなということで、TeraPadで文字コードを「Shift-JIS」に変換して実行したら無事文字化けしませんでした。

(参考)TeraPadで、「ファイル」タブ-「文字/改行コード指定保存」選択-文字コードを「SHIFT-JIS」を選択して改行コード「CR+LF」のままで「上書き保存」チェックで「OK」。

躓きポイント2|月数を2桁統一

「9月」の場合はどうしても「09月」としたかったので、1月~9月だけ先頭に0をつければいいかなと思ってたのですが、IFやら文字列結合やら面倒だったので、ググってみたところ、「全部まず先頭に0をくっつけて、下2桁を吐き出す方法」で手軽に実現できていたので、かっこいいなと思いそれを採用。

 

ということで、最近ショートカットをいろいろ覚えたり、自動化を意識したりとなんでも時短をこころがけようとしているヨネでした(*^^*) でわ、皆さんも良い時短生活を!アディオス(^_^)/~