Respuestas:
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.
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 osascript
comando en Terminal, como osascript /path/to/script
o osascript -e "a short script here"
.
También puede colocar el script en su carpeta ~ / Library / Scripts / Finder / y ejecutarlo directamente desde el menú Script.
Otra forma es crear un Servicio en Automator que use el osascript
comando para ejecutar un .scpt en Finder.
(No estoy usando Automator en inglés, por lo que la redacción puede no ser precisa)
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
Archivo> Guardar y asígnele un nombre como "Ejecutar AppleScript"
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
osascript
y 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 input
Aquí hay un ejemplo mínimo para reemplazar todo en su código actual de AppleScript: paste.ee/p/XngKA
if
bloque de instrucciones podría expandirse con una else
clá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.