AppleScriptを実行するたびに、エディタがポップアップします。
直接実行する方法はありますか?
スクリプトの保存方法は、Mac OS Xでの動作に大きな影響を与えます。スクリプトがスクリプトとして保存されるだけで、スクリプトを開くたびにスクリプトエディターが開くように思われます。
この問題を解決するには、AppleScriptエディターでスクリプトを開き、アプリケーションとして保存します。それはトリックになるはずです。
手順は(エディター内で)
[ファイル]> [名前を付けて保存]>次に、[ファイル形式]をアプリケーションに設定してから保存します。
スクリプトを保存するときに、[ファイル形式]ドロップダウンから[アプリケーション]を選択できます。その後、それを実行することができ、それでもスクリプトエディタにドラッグしてスクリプトを開くことができます。または、[実行のみ]を選択して、編集可能なバージョンを保存しないようにすることもできます。
または、ターミナルでosascript
コマンドをosascript /path/to/script
またはosascript -e "a short script here"
として使用することもできます。
スクリプトを〜/ Library/Scripts/Finder /フォルダーに配置して、[スクリプト]メニューから直接実行することもできます。
もう1つの方法は、osascript
コマンドを使用してFinderで.scptを実行するサービスをAutomatorで作成することです。
(私は英語でAutomatorを使用していないため、表現が正確でない可能性があります)
[AppleScriptの実行]ボックスに、次のコードを入力します。
on run {input, parameters}
tell application "Finder"
--get the selected file
set selectedItem to (item 1 of (get selection))
--get location info (folder:file format)
set fileLocation to (selectedItem as alias) as string
--replace : with / with subroutine
set the semifinal to my replace_chars(fileLocation, ":", "/")
--remove Macintosh HD with subroutine
set the theFinal to my replace_chars(semifinal, "Macintosh HD", "")
end tell
do Shell script "osascript " & "\"" & theFinal & "\""
return input
end run
on replace_chars(this_text, search_string, replacement_string)
set AppleScript's text item delimiters to the search_string
set the item_list to every text item of this_text
set AppleScript's text item delimiters to the replacement_string
set this_text to the item_list as string
set AppleScript's text item delimiters to ""
return this_text
end replace_chars
ファイル>保存し、「AppleScriptを実行」のような名前を付けます
これで、Finderで.scptファイルを右クリックし、[AppleScriptの実行]を選択して、スクリプトが実行されるのを確認できます。
参照:サブルーチンのソース- AppleScript:Essential Sub-Routines