2018/08/27

EXIFを元に撮影日名フォルダにまとめるAppleScript

フォルダにまとめて保存してある写真を、撮影日毎に20180101という形でフォルダを作成し、移動します。
最初にターゲットのフォルダを、次に保存先フォルダを指定します。
EXIFがない画像は移動せずそのままです。

AppleScriptなのでMac専用。
もっと速く処理する方法もありそうですが、とりあえず動くので、だいぶ前に作ったAppleScriptですが、せっかくなので公開。


要EXIFTool
tell application "Finder"
set aliaspath to target of window 1 as string
end tell
choose folder default location aliaspath as alias


set dir to (result)'s POSIX path
set targetDir to (choose folder)'s POSIX path
set objs to paragraphs of (do shell script "mdfind -onlyin " & dir & " " & ".jpg")
repeat with obj in objs
set obj to quoted form of the POSIX path of obj
try
do shell script "/usr/local/bin/exiftool -CreateDate" & " " & obj
set CDR to result
set AppleScript's text item delimiters to ":"
set CDRList to text items of CDR
set yy to item 2 of CDRList --年取得
set AppleScript's text item delimiters to space
set yy to item 2 of text items of yy
set mm to item 3 of CDRList --月取得
set dd to item 4 of CDRList --日取得
set AppleScript's text item delimiters to space
set dd to item 1 of text items of dd
set yymmdd to yy & mm & dd
set targetDir2 to targetDir & yymmdd
do shell script "mkdir -p " & quoted form of the POSIX path of targetDir2
do shell script "mv " & obj & " " & targetDir2
end try

end repeat