はじめてのAppleScript
文法とか眺めつつ・・・
友達に頼まれた、あるフォルダにあるファイルを指定個数ずつ別のフォルダにコピーします。コピー処理がえらい遅い気がするのだがfinder経由するとこんなもんなん??
(* 一つのフォルダに何個までファイルをコピーするかを定義します*) set max to 870 as integer (* コピーもと、コピー先を指定させる*) set myFol to choose folder with prompt "コピー元フォルダを選択" set myFol to myFol as string set outFol to choose folder with prompt "コピー先フォルダを選択" set outFol to outFol as string set cnt to 0 as integer (* 選択されたフォルダに対してファイルを列挙し、 divideを呼び出してファイルを振り分ける *) repeat with myFile in list folder myFol without invisibles set this_item to (myFol & myFile) as alias (* 現在の処理済みファイル数に応じてフォルダ名を作成*) set new_folder_name to (cnt) div max set new_folder_name to new_folder_name + 1 (* 連番の都合で10に満たないものは"01"のようにする*) if new_folder_name < 10 then set new_folder_name to "0" & new_folder_name end if (* 指定したフォルダ内に指定した個数が存在しなければ、 新規のフォルダを作成する *) if cnt mod max is 0 then log "create new folder: " & new_folder_name tell application "Finder" make new folder at outFol with properties {name:new_folder_name} end tell end if my divide(this_item, outFol & new_folder_name) set cnt to cnt + 1 end repeat display dialog "作業完了しました" on divide(name, outFol) (*log "FILE=" & name*) tell application "Finder" duplicate name to outFol end tell end divide