[AppleSript] スクリプト自身のパスを得る

サブルーチンです。

スクリプト自身が保存されているパスを取得します。
UNIXシェルに投げる事が多いのでUNIX形式への変換も行っています。

スポンサーリンク

スクリプト自身のパスを得る

set tmpPath to ScriptFolder() of me

-- スクリプト自身のパスを得る
on ScriptFolder()
	tell application "Finder"
		-- パスを取得
		set sFolder to parent of (path to me) as text
		-- パスをUNIX形式に変換	
		set sFolder to ((alias sFolder)'s POSIX path)
		return sFolder
	end tell
end ScriptFolder

説明

「set tmpPath to ScriptFolder() of me」で変数「tmpPath」にサブルーチン「ScriptFolder」が返す処理結果を格納します。
「ScriptFolder() of me」といわれて「on ScriptFolder() ~ end ScriptFolder」の処理が走ります。

「set sFolder to parent of (path to me) as text」で変数「sFolder」にMac OS形式であるコロン区切りのパスが格納されます。
パスの内容は「(path to me)」を指定しているので自身のパスです。

コロン区切りで特に問題ないのであれば、ここまででパスは取れています。

UNIXシェルに投げたい時は、以降の処理を記述してパスの形式を変更します。

「set sFolder to ((alias sFolder)’s POSIX path)」で変数「sFolder」がUNIX形式(POSIX path形式)のスラッシュ区切りのパスで上書きされます。

「return sFolder」で変数「sFolder」に格納されたパスを返しますので、最初の変数「tmpPath」にUNIX形式のパスが格納されます。