デジ一眼の画像ファイルをOneDriveに移動するためにSonyのアプリを使用したいと考えていたが、アプリが32ビットなので今の環境で動かない。フォルダの作成とファイルの移動を分けて考えれば、まずは暫定的に作れると思って、いろいろ調べて書いてみました。
今日のフォルダを作るスクリプト
tell application "Finder" -------#日付を取得して整形 set nowTime to my DateAndTIme(current date) -------#フォルダを作る try make new folder at ("Macintosh HD:Users:username:OneDrive:画像:a72") with properties {name:nowTime} end try end tell ---------------#ここから日付取得サブルーチン to DateAndTIme(theDate) set y to (year of theDate) set m to my monthNumStr(month of theDate) set d to day of theDate set hms to time of theDate set hh to h of sec2hms(hms) set mm to m of sec2hms(hms) set ss to s of sec2hms(hms) return (y as text) & "-" & my zero1(m) & "-" & my zero1(d) end DateAndTIme ---------------#月表示を文字列→数字に変換する to monthNumStr(theMonth) set monList to {January, February, March, April, May, June, July, August, September, October, November, December} repeat with i from 1 to 12 if item i of monList is theMonth then exit repeat end repeat return i end monthNumStr -------#時間部分が:で分離されているので:を取っちゃう to sec2hms(sec) set ret to {h:0, m:0, s:0} set h of ret to sec div hours set m of ret to (sec - (h of ret) * hours) div minutes set s of ret to sec mod minutes return ret end sec2hms -------------#1〜9の場合は01のように0を追加する to zero1(n) if n < 10 then return "0" & n else return n as text end if end zero1
SDカードから画像ファイルを移動するスクリプト
tell application "Finder" -------#日付を取得して整形 set nowTime to my DateAndTIme(current date) set theAlias to choose folder set theFiles to every file of theAlias repeat with aFile in theFiles move aFile to "Macintosh HD:Users:username:OneDrive:画像:a72:" & nowTime delete aFile end repeat end tell
日付処理のサブルーチンは同じなので省略。本当は1つにして、ファイル作成日でフォルダ作成したいけど、それは今後の課題ということで。