回答:
スクリプトの保存方法は、Mac OS Xでの動作に大きな影響を与えます。スクリプトがスクリプトとして保存されるだけで、スクリプトを開くたびにスクリプトエディターが開くように思われます。
この問題を解決するには、AppleScriptエディターでスクリプトを開き、アプリケーションとして保存します。それはトリックになるはずです。
手順は(エディター内)
ファイル>名前を付けて保存>ファイル形式をアプリケーションに設定して保存します。
スクリプトを〜/ Library / Scripts / Finder /フォルダーに配置して、[スクリプト]メニューから直接実行することもできます。
別の方法は、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
osascript
がなく、Finderで複数の.scptファイルが選択された場合に処理するようにコード化していません。2.次の1行のコードが、「AppleScriptを実行」アクションに追加したすべてのものを置き換える場合は、そのようなコーディングのきまりを経験する必要はまったくありません。do shell script "osascript " & quoted form of POSIX path of item 1 of input
現在のAppleScriptコードのすべてを置き換える最小限の例を次に示します。paste.ee
if
するelse
句を使用して、ステートメントブロックを拡張できます。そうすれば、ユーザーは、サービスの実行時に誤って間違ったタイプのファイルを選択したことを確認しなかったのになぜ何も起こらなかったのではないかと思ってしまうことはありません。