[Automator & AppleScript] Automator: サブルーチン(ハンドラ)を使う
うまく動かないなと思っていたら、間違っていました。
ちょっとはまった。
ハンドラを作成する
errAlert
というサブルーチンを作ってみます。
on run {input}
:
end run
on errAlert(alertMsg, alertNo)
-- キャンセルされた場合は、そのままアプリを終了する
if alertNo is -128 then
tell me to quit
-- それ以外のエラーはダイアログを表示して終了する
else
:
end if
end errAlert
ハンドラを利用する
tell application
のくくり方を間違えていました。
tell application "Finder"
try
if exists destFolder then
-- 作業フォルダが存在する場合、内部のファイルを削除する
delete (every item of folder destFolder)
else
make new folder at desktopPath with properties {name:defaultFolder}
end if
-- srcFolder 内部のファイルを複製する
duplicate items of folder (srcFolder) to destFolder
on error errMsg number errno
errAlert(errMsg, errno)
end try
end tell
正しくは
try
tell application "Finder"
if exists destFolder then
-- 作業フォルダが存在する場合、内部のファイルを削除する
delete (every item of folder destFolder)
else
make new folder at desktopPath with properties {name:defaultFolder}
end if
-- srcFolder 内部のファイルを複製する
duplicate items of folder (srcFolder) to destFolder
end tell
on error errMsg number errno
errAlert(errMsg, errno)
end try