スマホで写真を撮ったものをパソコン(windows 10)でよく使うことがあり、Microsoft の OneDrive を使い自動でPCと同期できるようにしていたが、最近のスマホは高画質で容量も大きいため、毎回縮小ソフトを使って縮小してから使用していた。
この手間を自動化して写真ファイルを使いたいと思った時に既に縮小されているようにしようと思い、自動化を思い立った。
流れとしては
- スマホで写真を撮る
- スマホアプリ「OneDrive」が自動でPC 側のカメラロールフォルダにアップロード。
- アップロードされたファイルを「フォルダ監視」というフリーソフトを使って検知。
- 「フォルダ監視」がバッチを実行。
- 特定のフォルダにアップロードされた写真がコピーされる。(バッチ内で自動処理)
- コピーされた写真はバッチ処理ができる「IrfanView」で縮小される。(バッチ内で自動処理)
- リサイズされた写真は自動削除(バッチ内で自動処理)
@echo off rem ワンドライブの同期フォルダフルパス set onedrive=C:\Users\user\OneDrive\画像\カメラ ロール rem ワンドライブの写真のコピー先 set CopyDestination=C:\Users\user\Pictures\camera rem IrfanViewのプログラムをフルパスで表示(.exeは省略可) set IrfanView=C:\Program Files\IrfanView\i_view64 rem リサイズ後の画像ファイル出力先 set output=C:\Users\user\Pictures\camera\Irfanview_auto_resize\ robocopy "%onedrive%" %CopyDestination% *.jpg *.png *.jpeg *.mp4 *.mov /z /xo /s "%IrfanView%" %CopyDestination%\*.jpg /resize_long=800 /aspectratio /resample /convert=%output%*.jpg "%IrfanView%" %CopyDestination%\*.png /resize_long=800 /aspectratio /resample /convert=%output%*.png forfiles /P %CopyDestination% /M "*.jpg" /C "cmd /C del /Q @file" forfiles /P %CopyDestination% /M "*.png" /C "cmd /C del /Q @file"












