Выполнить яблочный скрипт без открытия редактора

22164
OscarRyz

Каждый раз, когда я хочу запустить appleScript, появляется редактор.

Есть ли способ запустить его напрямую?

10

4 ответа на вопрос

17
Bruce McLeod

Способ сохранения сценария оказывает большое влияние на его работу в Mac OS X. Похоже, ваш сценарий просто сохраняется как сценарий, и именно поэтому редактор сценариев открывается при каждом его открытии.

Чтобы решить проблему, откройте сценарий в редакторе AppleScript и сохраните его как приложение. Это должно к хитрости.

Шаги есть (в редакторе)

Файл> Сохранить как>, затем выберите Формат файла для приложения, затем сохраните.

текст ссылки

Теперь он запрашивает: «Нажмите run, чтобы запустить или выйти, чтобы выйти» ... но я думаю, что это ошибка скрипта! Спасибо OscarRyz 14 лет назад 0
Установка флажка «Выполнить» может помешать появлению приглашения. Bruce McLeod 14 лет назад 1
Насколько я понимаю, флажок Run Only не позволяет редактировать скрипт позже. jtbandes 14 лет назад 0
@jtbandes аааа ... это имеет смысл Bruce McLeod 14 лет назад 0
* Если вы когда-нибудь захотите снова увидеть код скрипта, НЕ ИСПОЛЬЗУЙТЕ ** Run Only **! * * Диалоговое окно ** Run / Quit ** открывается из опции ** Startup Screen **. Я иногда видел, как по умолчанию проверено при использовании ** Сохранить как ** в уже сохраненном приложении. Кроме того, для Mac OS X до Snow Leopard выберите ** Формат файла: ** «комплект приложений» для максимальной совместимости (и минимального количества ресурсов!). «Приложение» Snow Leopard - это пакет, они просто отбросили часть названия «пакет» (и добавили поддержку x86-64 в дополнение к 32-битной универсальной поддержке из предыдущих выпусков). Chris Johnsen 14 лет назад 0
Обратите внимание, что в Yosemite текущим методом является использование File -> Export. В последней версии редактора AppleScript больше нет диалога «Сохранить как». anon58192932 8 лет назад 2
5
jtbandes

При сохранении скрипта вы можете выбрать «Приложение» из выпадающего меню «Формат файла»; тогда вы сможете запустить его, и вы все равно сможете перетащить его в редактор скриптов, чтобы открыть скрипт; или вы можете выбрать Run Only, чтобы не сохранять редактируемую версию.

Кроме того, вы можете использовать osascriptкоманду в терминале, либо как, osascript /path/to/scriptлибо osascript -e "a short script here".

1

Вы также можете поместить скрипт в папку ~ / Library / Scripts / Finder / и запустить его прямо из меню Script.

0
Jack Wu

Другой способ - создать Сервис в Automator, который использует osascriptкоманду для запуска .scpt в Finder.

(Я не использую Automator на английском языке, поэтому формулировка может быть неточной)

  1. Запустить Automator
  2. Файл> Новый и выберите Сервис
  3. В «Служба принимает:» выберите «Файл или папка»
  4. В «Расположение:» выберите «Finder.app»
  5. Найдите «Запустить AppleScript» и перетащите элемент в правую часть.
  6. В поле «Запустить AppleScript» введите следующий код:

    on run  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 
  7. Файл> Сохранить и дать ему имя типа «Запустить AppleScript»

  8. Теперь вы можете щелкнуть правой кнопкой мыши файл .scpt в Finder, выбрать «Запустить AppleScript» и увидеть, что ваш скрипт выполнен.

Ссылка: Источник подпрограммы - AppleScript: Основные подпрограммы

Я вижу проблемы с вашим кодом AppleScript. 1. У вас нет обработки ошибок или кода для проверки того, что выбранный файл является .scpt перед его передачей в `osascript` и не закодировал его для обработки, если в Finder выбрано более одного файла .scpt. 2. Совершенно не нужно проходить через такое сложное кодирование, когда следующая строка кода заменяет все, что вы добавили в действие «Выполнить AppleScript». `do shell script" osascript "и цитируемая форма пути POSIX элемента 1 ввода` Вот минимальный пример для замены всего, что есть в вашем текущем коде AppleScript: https://paste.ee/p/XngKA user3439894 6 лет назад 0
В минимальном примере блок оператора `if` может быть расширен с помощью предложения` else`, которое отображает сообщение о том, что выбранный файл не был файлом .scpt. Таким образом, пользователи не задаются вопросом, почему ничего не произошло, если они не увидели, что они случайно выбрали неправильный тип файла при запуске службы. user3439894 6 лет назад 0