【Apple Script】ドラッグ&ドロップとフォルダの選択

Automator を使って、シェルスクリプトで引数を受けた後、apple script に渡すというアプリを作ってみた。

シェルスクリプトを実行

for f in "$@"
do
    echo "$f"
done

apple script を実行

on run argv
    
    set folderPath to (item 1 of argv) as string
    
    if (length of folderPath > 0) then
        -- ドラッグ時
        -- folderPath = /Users/.../folder
        set folderPath to POSIX file (folderPath & "/") -- "MacOS:Users:・・・:folder:"
    else
        -- フォルダ選択時
        set folder to choose folder with prompt "フォルダを選択"
        set folderPath to folder as string -- "MacOS:Users:・・・:folder:"
    end if
    
    display alert ("folderPath = " & folderPath)
    
end run

フォルダをドラッグした時と、選択ウィンドウで選んだ時で、取得するパスの形式が違うので注意。