Ejecute applecript sin abrir el editor


12

Cada vez que quiero ejecutar un applecript, aparece el editor.

¿Hay alguna manera de ejecutarlo directamente?

Respuestas:


19

La forma en que se guarda el script tiene un gran efecto sobre cómo funcionará en Mac OS X. Parece que su script solo se guarda como un script y eso es lo que hace que el editor de script se abra cada vez que abre el script.

Para resolver el problema, abra el script en el editor AppleScript y guárdelo como una aplicación. Eso debería ser el truco.

Los pasos son (en el editor)

Archivo> Guardar como> luego configure el Formato de archivo en la aplicación y luego guárdelo.

Texto del enlace


Ahora aparece: "Presione ejecutar para ejecutar o salga para salir" ... ¡pero supongo que es un error de script! Gracias
OscarRyz el

1
Si marca la casilla de verificación Ejecutar, es posible que no aparezca el mensaje.
Bruce McLeod el

Según tengo entendido, la casilla de verificación Ejecutar solo no permite editar el script más adelante.
jtbandes

@jtbandes ahhhh ... que tiene sentido
Bruce McLeod

2
Tenga en cuenta que en Yosemite, el método actual es utilizar Archivo -> Exportar. No hay más diálogo Guardar como en la última versión del editor AppleScript.
anon58192932

7

Al guardar la secuencia de comandos, puede elegir "Aplicación" en el menú desplegable Formato de archivo; entonces podrá ejecutarlo, y aún podrá arrastrarlo al Editor de secuencias de comandos para abrir la secuencia de comandos; o puede elegir Ejecutar solo para que no guarde la versión editable.

Alternativamente, puede usar el osascriptcomando en Terminal, como osascript /path/to/scripto osascript -e "a short script here".


1

También puede colocar el script en su carpeta ~ / Library / Scripts / Finder / y ejecutarlo directamente desde el menú Script.


1

En macOS High Sierra 10.13 no hay Archivo / Guardar como.

Debe usar Archivo / Exportar / Formato de archivo: Aplicación Exportar archivo Formato de archivo


0

Otra forma es crear un Servicio en Automator que use el osascriptcomando para ejecutar un .scpt en Finder.

(No estoy usando Automator en inglés, por lo que la redacción puede no ser precisa)

  1. Iniciar Automator
  2. Archivo> Nuevo y seleccione Servicio
  3. En "El servicio acepta:" seleccione "Archivo o Carpeta"
  4. En "Ubicación:" seleccione "Finder.app"
  5. Busque "Ejecutar AppleScript" y arrastre el elemento hacia el lado derecho
  6. En el cuadro Ejecutar AppleScript, ingrese el siguiente 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. Archivo> Guardar y asígnele un nombre como "Ejecutar AppleScript"

  8. Ahora puede hacer clic con el botón derecho en un archivo .scpt en Finder y seleccionar "Ejecutar AppleScript" y ver su script ejecutado.

Referencia: Fuente de la subrutina - AppleScript: Subrutinas esenciales


Veo problemas con su código AppleScript. 1. No tiene manejo de errores o código para validar lo que está seleccionado es un archivo .scpt antes de pasarlo osascripty no lo ha codificado para manejar si se selecciona más de un archivo .scpt en Finder. 2. No hay absolutamente ninguna necesidad de pasar por este rigmarole de codificación cuando la siguiente línea de código reemplaza todo lo que agregó a la acción Ejecutar AppleScript. do shell script "osascript " & quoted form of POSIX path of item 1 of inputAquí hay un ejemplo mínimo para reemplazar todo en su código actual de AppleScript: paste.ee/p/XngKA
user3439894

En el ejemplo mínimo, el ifbloque de instrucciones podría expandirse con una elsecláusula que muestre un mensaje de que el archivo seleccionado no era un archivo .scpt. De esta forma, el usuario no se pregunta por qué no pasó nada si no vio que seleccionó accidentalmente el tipo de archivo incorrecto cuando se ejecuta el servicio.
user3439894
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.