11 votos

¿Cómo cambiar la ruta de AppleScript a una ruta del estilo Terminal?

Tengo un Servicio personalizado que he creado en Automater (estoy en OS x 10.6.5). El Servicio se ejecuta un AppleScript que a su vez ejecuta una secuencia de comandos de shell. Aquí está el AppleScript:

on run {input, parameters}
    -- do shell script "/usr/bin/find " & input & " -type f -name .DS_Store -delete -print"
    display alert "Path: " & input
end run

El problema es que el camino pasa por el Servicio (en la variable input) se ve así:

Macintosh HD:Users:Matthew:Documents:Programming:Apple Scripts:

Y para que el comando se ejecute correctamente, la ruta debe quedar como:

Macintosh\ HD/Users/Matthew/Documents/Programming/Apple\ Scripts/

Así, hay una manera de traducir el primer camino a la segunda ruta de acceso? Yo estaba esperando una función central que se encarga de esto. Pero supongo que algún tipo de regex/buscar/reemplazar/etc funcionaría? Estoy familiarizado con HTML/CSS/Javascript/PHP, no con Cacao/AppleScript/C. Cualquier dirección o sugerencias sería genial!

9voto

Nate Puntos 220

Uso quoted form of the POSIX path of input . Sin la quoted form of parte, no manejar personajes divertidos (como espacios) en nombres de archivo correctamente. Consulte esta nota técnica de Apple.

6voto

Henrik Gustafsson Puntos 11755

Ok...esto fue más fácil de lo que me había dado cuenta. Después de buscar un poco en Google, parece que lo que falta aquí es el POSIX path of comando. Esto convierte a una determinada ruta de acceso a un estilo Unix camino, que es el tipo de ruta que iba a ver/usar en la Terminal. Así:

POSIX path of input

Me da una ruta de acceso como:

/Users/Matthew/Documents/Programming/Apple Scripts/

Parece tomar en cuenta que sólo se necesita un / al comienzo de la ruta, en lugar de la unidad de disco duro nombre. No, sin embargo, escapar de la \ espacios o caracteres especiales) en el camino. Así que, como la otra respuesta que aquí se menciona, es necesario colocar la ruta de acceso entre comillas ( " o ' ) en el orden de los espacios (o caracteres especiales) para ser interpretado literalmente. Esto se puede lograr mediante el uso de quoted form of. Aquí está:

quoted form of the POSIX path of the input
-- gives a path like: '/Users/Matthew/Documents/Programming/Apple 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