Executar o AppleScript sem abrir o editor


12

Toda vez que eu quero rodar um AppleScript, o editor aparece.

Existe uma maneira de executá-lo diretamente?

Respostas:


19

Como o script é salvo tem um grande efeito sobre como ele irá operar no Mac OS X. Parece que o seu script acabou de ser salvo como um script e é isso que está fazendo com que o editor de scripts seja aberto toda vez que você abrir o script.

Para resolver o problema, abra o script no editor AppleScript e salve-o como um aplicativo. Isso deve ser o truque.

As etapas são (no editor)

Arquivo> Salvar como> defina Formato do arquivo como aplicativo e salve.

Texto do link


Agora, ele exibe: "Pressione executar para executar ou sair para sair" ... mas acho que é culpa do script! Obrigado
OscarRyz

1
Marcar a caixa de seleção executar pode impedir que o prompt apareça.
Bruce McLeod

Meu entendimento é que a caixa de seleção Executar Apenas não permite a edição do script posteriormente.
jtbandes

@ Jtbandes ahhhh ... que faz sentido
Bruce McLeod

2
Observe que no Yosemite, o método atual é usar Arquivo -> Exportar. Não há mais diálogo Salvar como na versão mais recente do editor AppleScript.
Anon58192932

7

Ao salvar o script, você pode escolher "Aplicativo" no menu suspenso Formato de arquivo; então você poderá executá-lo e ainda poderá arrastá-lo para o Editor de scripts para abrir o script; ou você pode escolher Executar apenas para não salvar a versão editável.

Como alternativa, você pode usar o osascriptcomando no Terminal, como osascript /path/to/scriptou osascript -e "a short script here".


1

Você também pode colocar o script na sua pasta ~ / Library / Scripts / Finder / e executá-lo diretamente no menu Script.


1

No macOS High Sierra 10.13, não há Arquivo / Salvar como.

Você deve usar Arquivo / Exportar / Formato do arquivo: Aplicativo Exportação de arquivo Formato de arquivo


0

Outra maneira é criar um serviço no Automator que use o osascriptcomando para executar um .scpt no Finder.

(Não estou usando o Automator em inglês, portanto, o texto pode não ser preciso)

  1. Launch Automator
  2. Arquivo> Novo e selecione Serviço
  3. Em "Serviço aceita:" selecione "Arquivo ou pasta"
  4. Em "Localização:", selecione "Finder.app"
  5. Pesquise "Executar AppleScript" e arraste o item para o lado direito
  6. Na caixa Executar AppleScript, digite o seguinte código:

    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. Arquivo> Salvar e dê um nome como "Executar AppleScript"

  8. Agora você pode clicar com o botão direito do mouse em um arquivo .scpt no Finder e selecionar "Executar AppleScript" e ver seu script executado.

Referência: Origem da sub-rotina - AppleScript: Sub-rotinas essenciais


Vejo problemas com o seu código AppleScript. 1. Você não tem nenhum tratamento ou código de erro para validar o que está selecionado é um arquivo .scpt antes de ser passado para ele osascripte não o codificou para manipular se mais de um arquivo .scpt estiver selecionado no Finder. 2. Não há absolutamente nenhuma necessidade de passar por esse rigmarole de codificação quando a seguinte linha de código substitui tudo o que você adicionou à ação Executar AppleScript. do shell script "osascript " & quoted form of POSIX path of item 1 of inputAqui está um exemplo mínimo para substituir tudo no seu código AppleScript atual: paste.ee/p/XngKA
user3439894

No exemplo mínimo, o ifbloco de instruções pode ser expandido com uma elsecláusula que exibe uma mensagem de que o arquivo selecionado não era um arquivo .scpt. Dessa forma, o usuário não fica se perguntando por que nada aconteceu, se não viu que acidentalmente selecionou o tipo errado de arquivo quando o serviço é executado.
user3439894
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.