写真(拡張子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月など}があればそのフォルダに写真を移動させる。なければ年月のファイルを作って写真を移動させる。


ざっくり写真を整理したい方はお試しください。