6 votos

Obtener la ruta de AppleScript de la carpeta principal

Estoy escribiendo un AppleScript que se ejecutará desde una unidad USB, pero el nombre de la inmersión puede cambiar a menudo, así que necesito averiguar cómo obtener la ruta del directorio de la carpeta principal que contiene el script.

Esto me da el directorio completo con el directorio del archivo, necesito el directorio de su carpeta padre:

set pPath to path to me as text
display dialog pPath

He encontrado esto (que es lo que necesito), pero necesito una ruta AppleScript, no una ruta POSIX.

set pPath to POSIX path of ((path to me as text) & "::")
display dialog pPath

Cuando se ejecuta el script debe detectar la ruta del directorio al script, el primer ejemplo de código lo hace, pero luego necesita subir una carpeta a la carpeta padre que contiene el script (el segundo ejemplo lo hace) pero necesito que se convierta de la ruta POSIX a la ruta Applescript que utiliza ":" en lugar de "/".

0 votos

Podría estar equivocado, sin embargo, creo que te has confundido un poco, ya que parece que utilizas el término directory cuando en realidad su media path por lo que le sugiero que añada algunos ejemplos del mundo real de cada elemento que requiera, ya que un escrito actual es confuso y necesita ser editado.

10voto

William T Froggard Puntos 2862

AppleScript está escrito en inglés. Lee lo que dice. Elimine el posix path of del código, y obtendrá la ruta HFS.

Código completo:

tell application "Finder" to get (container of (path to me)) as text

0 votos

Sí, lo entiendo, sin embargo, me sale la ruta completa, no la ruta padre que contiene el script.

0 votos

Lo he actualizado con lo que necesitas.

0 votos

El código que me has proporcionado parece funcionar, sin embargo, cuando se ejecuta desde una memoria USB, me da el error: No se puede convertir <<clase ctnr>> del alias "[ruta]" en texto de tipo. Funciona cuando el script se copia en el escritorio, pero necesito ejecutarlo desde una unidad USB.

9voto

Matt R Puntos 136

Prueba esto:

Estilo Unix:

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

Si necesitas pasarlo, por ejemplo, al shell script, puede que quieras encerrar la ruta entre comillas:

set my_POSIX_path to quoted form of POSIX path of ((path to me as text) & "::")

Estilo MacOS:

set my_path to (((path to me as text) & "::") as alias) as string

Entonces, dependiendo de sus necesidades, sustituya set my_path to / set my_POSIX_path to con display dialog o simplemente return .

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