こんにちは。ひらのです。
MacのGUI操作の自動再生アプリ「Automator」では、
自分自身(Automatorファイル)の保存場所を取得できなくて困ったので、
パスの取り方について纏めたいと思いました。
(検証環境はYosemite/10.10.1です)
Automatorファイルを保存した場所を取得して、
そこからの相対パスでファイルを開く動作をさせたかったのですが、
Automatorでカレントディレクトリを取得すると
Automator自体の場所が表示されてしまいます。
■shellファイルの場合
■Automatorでshellを書いた場合
■AppleScriptの場合
■AutomatorでAppleScriptを書いた場合
そのため、Automatorで任意のパスを扱いたい場合は、
下記の手段を使用することになります。
■諦めて固定パスを使用する
■環境変数を使用する
■Automator実行時にユーザーに入力させる
MacのGUI操作の自動再生アプリ「Automator」では、
自分自身(Automatorファイル)の保存場所を取得できなくて困ったので、
パスの取り方について纏めたいと思いました。
(検証環境はYosemite/10.10.1です)
Automatorファイルを保存した場所を取得して、
そこからの相対パスでファイルを開く動作をさせたかったのですが、
Automatorでカレントディレクトリを取得すると
Automator自体の場所が表示されてしまいます。
■shellファイルの場合
#!/bin/sh pwd echo $(cd $(dirname $0); pwd) | → 実行時のカレントディレクトリが表示される → シェルスクリプトの保存ディレクトリが表示される |
■Automatorでshellを書いた場合
[ライブラリー] > [ユーティリティ] > [シェルスクリプトを実行]
#!/bin/sh pwd echo $(cd $(dirname $0); pwd) | → ユーザーのホームディレクトリになる → ユーザーのホームディレクトリになる |
■AppleScriptの場合
return (path to me) as text | → AppleScriptの保存ディレクトリが表示される |
■AutomatorでAppleScriptを書いた場合
[ライブラリー] > [ユーティリティ] > [AppleScriptを実行]
on run {input, parameters}
→ Automator自身(Macintosh HD:Applications:Automator.app)のパスになるdisplay dialog (path to me) as text buttons{"OK"} with icon 1
end runそのため、Automatorで任意のパスを扱いたい場合は、
下記の手段を使用することになります。
■諦めて固定パスを使用する
■環境変数を使用する
シェル経由で環境変数を扱えるため、
私はユーザーのホームディレクトリから固定パスを使用しました。
私はユーザーのホームディレクトリから固定パスを使用しました。
echo $HOME/Desktop/target.txt
■Automator実行時にユーザーに入力させる
アクション「Finder 項目の選択を求める」で
Automator実行のたびにユーザーにファイルの位置を指定させます。
Automator実行のたびにユーザーにファイルの位置を指定させます。