Відповіді:
Накопичення збереження сценарію має великий вплив на те, як він буде працювати в Mac OS X. Це здається, що ваш сценарій просто збережений як сценарій, і саме це призводить до того, що редактор сценаріїв відкривається кожного разу, коли ви відкриваєте сценарій.
Щоб вирішити проблему, відкрийте скрипт у редакторі AppleScript і збережіть його як додаток. Це слід до хитрості.
Етапи (в редакторі)
Файл> Зберегти як>, а потім встановіть Формат файлу на додаток, а потім збережіть.
Зберігаючи сценарій, ви можете вибрати "Application" зі спадного меню File Format; тоді ви зможете запустити його, і ви все одно зможете перетягнути його до редактора сценаріїв, щоб відкрити сценарій; або ви можете вибрати Виконати лише, щоб не зберегти редаговану версію.
Крім того, ви можете використовувати osascript
команду в Terminal або як osascript /path/to/script
або osascript -e "a short script here"
.
Ви також можете розмістити скрипт у папці ~ / Бібліотека / Сценарії / Finder / і запустити його безпосередньо з меню Скрипт.
Іншим способом є створення сервісу в Automator, який використовує osascript
команду для запуску .scpt у Finder.
(Я не використовую Автоматизатор англійською мовою, тому формулювання може бути неточним)
У полі Запустити 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"
Тепер ви можете клацнути правою кнопкою миші.
Довідка: Джерело підпрограми - AppleScript: Основні підпрограми
osascript
. 2. Абсолютно не потрібно проходити таку ригмарол кодування, коли наступний єдиний рядок коду замінює все, що ви додали до дії Виконати AppleScript. do shell script "osascript " & quoted form of POSIX path of item 1 of input
Ось мінімальний приклад заміни всього у вашому поточному коді AppleScript: paste.ee/p/XngKA
if
блок операторів може бути розширений else
пунктом, який відображає повідомлення про те, що вибраний файл не був .scpt-файлом. Таким чином, користувачеві не залишається цікаво, чому нічого не сталося, якщо вони не побачили, що вони випадково обрали неправильний тип файлу під час запуску служби.