写真(拡張子jpg)を、年月のフォルダに仕分けするPowerShell
子どもの写真がスマホに大量に…
写真を撮る機会が増えて写真の整理に困ったので、Windows Power Shellで作成日時の年と月で該当のフォルダに写真を移動させる。また、フォルダがなければその年月でファイルを作成し、写真を移動させる。
処理イメージ
スマホなどの写真データを、処理対象のフォルダに貼付ける。
格納用のフォルダを準備する。
(このフォルダに年月のフォルダを作成{例:2019年12月})
Power Shellで以下のコードのps1ファイルを実行。
ps1のコード
#変数設定処理-------------------------------------------------------------------------------------------- # 処理対象のフォルダ $targetFolder = 'C:\Users\user\Pictures\myPicture\t'; #格納用フォルダ $loadFolder = 'C:\Users\user\Pictures\myPicture\tアルバム' # $targetFolder内のファイル・フォルダのリストを取得する。 $itemList = Get-ChildItem *.jpg -path $targetFolder; #格納用フォルダリスト $loadFolderList = Get-ChildItem $loadFolder #変数設定終了-------------------------------------------------------------------------------------------- #主処理 foreach($item in $itemList) { $PictureMonth=($item.lastwritetime).month $Pictureyear=($item.lastwritetime).year $FolderName=[string]$Pictureyear + '年' + [string]$PictureMonth + '月' #yyyy + '年' + m + '月'ファイルが存在したらそこにmoveする。なければフォルダを作成してmoveする if(Test-Path C:\Users\user\Pictures\myPicture\tアルバム\$FolderName) { #write-host "移動できます" move-item C:\Users\user\Pictures\myPicture\t\$item C:\Users\user\Pictures\myPicture\tアルバム\$FolderName } else { #write-host "新規ファルダ作成" New-Item -Path C:\Users\user\Pictures\myPicture\tアルバム -name $FolderName -ItemType Directory move-item C:\Users\user\Pictures\myPicture\t\$item C:\Users\user\Pictures\myPicture\tアルバム\$FolderName } }
処理概要
処理要領は、処理対象のフォルダに対してGet-ChildItemでjpgファイルだけ抽出。
格納用フォルダの中をGet-ChildItemで抽出し、写真の作成日付の年月のファイル{2019年12月など}があればそのフォルダに写真を移動させる。なければ年月のファイルを作って写真を移動させる。
ざっくり写真を整理したい方はお試しください。