2 votos

¿Cómo hacer que una aplicación AppleScript se localice a sí misma?

He estado trasteando con este genial lenguaje de scripting AppleScript y tengo otra pregunta. ¿Cómo hacer que una aplicación AppleScript se localice a sí misma?

Algo así (que obviamente no funciona):
get info of myself set variable to "location"

Así que la salida, "variable", sería por ejemplo /home/Desktop/MyEpicApp.app .

Hay algún script o una secuencia de ellos para obtener la ubicación de la app y almacenarla en una variable?

Muchas gracias de antemano, aunque sea una pequeña ayuda se agradece.

0 votos

Sin probarlo - y basado en un vago conocimiento de Applescript... 'path to myself' o 'POSIX path to myself'. Applescript definitivamente entiende que "yo" significa este script o esta aplicación compilada. Nunca he probado hasta dónde llega eso.

0 votos

Inténtalo: set thePath to POSIX path of (path to me as text)

0 votos

@user3439894 Funciona perfectamente, es exactamente lo que quiero. Puedes publicarlo como respuesta y lo aceptaré. ¡¡¡Gracias!!!

2voto

user3439894 Puntos 5883

Para ajustar el camino de un AppleScript script o aplicación a un variable utilice lo siguiente código :

set thePath to POSIX path of (path to me as text)

Ejemplo:

set thePath to POSIX path of (path to me as text)
display dialog "The path to me is: " & thePath

enter image description here

Si quiere el camino hasta el script o aplicación ajustado a un variable utilice lo siguiente código :

set thePath to POSIX path of ((path to me as text) & ":")

Ejemplo:

set thePath to POSIX path of ((path to me as text) & ":")
display dialog "The path to me is: " & thePath

enter image description here

0 votos

Una pregunta más: ¿cómo eliminar la barra al final? ¿qué es lo "opuesto" a "algo" & someVariable?

0 votos

@Prokop Hanzl, Lo siento, no vi tu comentario, sin embargo veo que tienes la respuesta a esa pregunta: apple.stackexchange.com/questions/237193/

0voto

G H Puntos 1

Para establecer una variable a la ruta de estilo Posix del actual script que dio como ejemplo:

set thePath to POSIX path of (path to me) as text

Los scripts se almacenan como archivos, pero las aplicaciones se almacenan como paquetes (más conocidos en el mundo Unix/POSIX como directorios), por lo que el exacto El resultado depende de si lo que se está ejecutando se guardó como un script (archivo .scpt) o una aplicación (paquete .app).

Digamos que soy el usuario "gh" y guardo mis scripts en un subdirectorio de mi directorio personal llamado scripts.

Si se ejecuta en un script guardado como foo.scpt, la sentencia anterior establecería elPath como

/Users/gh/Scripts/foo.scpt

Ejecutando como foo.app, establecería elPath a

/User/gh/Scripts/foo.app/

Tenga en cuenta la barra diagonal final.

Si quiero cargar una librería desde el mismo lugar que el actual script, hay algunas formas de obtener sólo la parte necesaria de la ruta, pero la más fácil es:

set my_root to POSIX path of (((path to me) as text) & "::")
set my_lib to load script POSIX file (my_root & "lib.scpt")

Tanto si el script se guarda como .scpt o como .app, mi_raíz siempre recibe

/Users/gh/Scripts/

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X