0 votos

Encontrar un archivo en la carpeta principal de un AppleScript

Tengo un AppleScript que llama a otro script (un perl script en este caso) que reside en la misma carpeta que el AppleScript.
Ahora estoy tratando de poner el script en una variable así:

tell application "Finder"
    set scriptPath to POSIX path of (container of (path to me) as text)
    set perlScript to (do shell script "find " & quoted form of scriptPath & " -name myscript.pl")
end tell

Pero el resultado que obtengo del comando find shell tiene dos barras antes del nombre del archivo: /path/to/folder//myscript.pl
¿Alguien tiene idea de lo que estoy haciendo mal?

EDITAR:
Aunque no entiendo muy bien lo de la doble barra he conseguido resolver el problema no invocando el Finder en absoluto y haciendo lo siguiente:

set scriptPath to POSIX path of (path to me) -- path to AppleScript
set scriptFolder to do shell script "dirname " & quoted form of scriptPath -- path to folder with AppleScript
set perlScript to (do shell script "find " & quoted form of scriptFolder & " -name myscript.pl") -- path to PerlScript

No sé si es la mejor manera de hacerlo pero a mí me funciona.

2voto

Rich Puntos 2429

Aquí hay una respuesta para acertar con el nombre de la ruta de .. de AppleScript:

Obtener la ruta actual a script dentro de AppleScript y añadir el subdirectorio

De todos modos, la construcción real que tienes: /path/to/folder//myscript.pl es un nombre de ruta correcto para su Perl script. El primer / viene de la terminal que viene de container : /path/to/folder/ .

Por lo tanto, su comando de búsqueda construido es muy similar a este que podría probar experimentar:

find ~/ -name "Documents" -print

Sugerencia: trabaje directamente en Perl, es muchas veces más eficiente que cualquier AppleScript.

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