728x90
반응형
애플에는 스크립트 편집기가 있다. 그걸 이용해서 프로그래밍을 할 수 있는데, 이를 이용해서 사진정리하는 방법을 알아보자.
우선 필자가 원하는 부분을 정리해보면
1. 메모리 혹은 폴더에 있는 사진을 촬영된 날짜의 폴더로 옮긴다.
2. 파일명을 년월일(6자리)_시분초(6자리)_파일명 으로 바꿔준다.
이렇게 할 수 있도록 한 것이 아래 스크립트이다.
use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions
set sourceDisk to (choose folder with prompt "Select the memory card drive:" default location "/Volumes")
-- default is to copy to a new folder on your desktop. Change as appropriate
set desktopFolder to (choose folder with prompt "Where should the files be copied to?")
tell application "Finder"
-- move to a "photos" folder on your desktop
if exists folder "Photos" of desktopFolder then
set destFolder to folder "Photos" of desktopFolder
else
set destFolder to (make new folder at desktopFolder with properties {name:"Photos"})
end if
-- get a list of files to move
set files2Copy to every file of entire contents of sourceDisk whose name extension is in {"jpg", "raf", "orf", "erf", "fff", "crw", "cr2", "cr3", "dng", "mef", "mos", "srw", "ptx", "pef", "rw2", "pxn", "tif", "k25", "kdc", "dcs", "dcr", "drf", "cap", "tif", "iiq", "mrw", "arw", "srf", "sr2", "bay", "r3d", "nef", "nrw", "x3f", "mov", "mp4", "xmf", "avi", "THM", "LRV"}
-- iterate through the files
repeat with eachFile in files2Copy
-- get the creation date
set dt to creation date of eachFile
-- process the various date strings
set fn to my getFolderName(dt)
set d to my getDateStr(dt)
set t to my getTimeStr(dt)
-- is there already an appropriate destination folder?
if exists folder fn of destFolder then
set this_folder to folder fn of destFolder
else
set this_folder to make new folder at destFolder with properties {name:fn}
end if
-- move the file
set newFile to duplicate eachFile to this_folder
-- and rename it
set name of newFile to d & "_" & t & "_" & name of newFile
end repeat
end tell
on getFolderName(theDate)
-- handler to return yyyy.mm.dd "from a given date
set y to (year of theDate as text)
set m to text -2 through -1 of ("0" & (month of theDate as integer))
set d to text -2 through -1 of ("0" & day of theDate)
return y & "." & m & "." & d as text
end getFolderName
on getDateStr(theDate)
-- handler to return yymmdd from a given date
set y to text -2 through -1 of (year of theDate as text)
set m to text -2 through -1 of ("0" & (month of theDate as integer))
set d to text -2 through -1 of ("0" & day of theDate)
return y & m & d as text
end getDateStr
on getTimeStr(theDate)
-- handler to return hhmmss from a given date
set s to time of theDate
set h to s div 3600
set m to (s mod 3600) div 60
set s to s mod 60
return (text -2 through -1 of ("0" & h) & text -2 through -1 of ("0" & m) & text -2 through -1 of ("0" & s)) as text
end getTimeStr
스크립트 편집기를 통해 재생해보면 위와 이야기했던 형태로 제작될 수 있다. 스크립트 편집기를 적어서 저장해서 첨부한다. 필요하면 연구해서 커스터마이징도 가능하니 잘 활용하길 바란다. 이 스크립트 자체를 필자가 만든게 아닌 애플 커뮤니티를 통해 필자가 궁금한 부분을 질문했고 카멜롯이란 사람이 답을 남겨주었다. [링크]
728x90
반응형
'IT&Tech > Software' 카테고리의 다른 글
macOS: 앱스토어 다운로드가 느리다면,, DNS를 확인하자 (0) | 2021.03.04 |
---|---|
macOS: 다운로드 한 앱이 허용되지 않을 때 해결방법 (0) | 2021.02.26 |
macOS M1 에서 FCPX의 Intel 플러그인 사용하기 (0) | 2021.02.13 |
애플 미리알림 메모 윈도우로 동기화하기(Windows와 macOS, iOS) (4) | 2021.02.12 |
Frame.io 계정 탈퇴하는 방법 (0) | 2021.02.09 |