10

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

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

4 ответа4

17

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

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

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

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

текст ссылки

5

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

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

1

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

0

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .