1 votos

Cómo escribir una barra invertida en Apple script

Quiero hacer esto desde la terminal con un Script de Apple:

/System/Library/Automator/Combine\ PDF\ Pages.action/Contents/MacOS/join -o output inpath1 inpath2

Sin embargo, no sé cómo escribir la barra invertida sin que genere un error.

Esto es solo con espacios en blanco:

set inpath1 to "/Users/user1/Dropbox/z_Scripts/ex1.pdf"
set inpath2 to "/Users/user1/Dropbox/z_Scripts/ex2.pdf"

do shell script "/System/Library/Automator/Combine\\ PDF\\ Pages.action/Contents/MacOS/join -o output " & inpath1 & "\\ " & inpath2

¿Cómo agregar la barra invertida? ¿Alguna idea?

0 votos

Esto es porque agregar una barra invertida en medio de una cadena corta la cadena en el lugar donde se encuentra la barra invertida.

0 votos

¿Cuál es el error dado?

0 votos

Esto se siente como un Problema XY ¿Qué estás intentando hacer? Supuestamente tu acción se llama 'Combine PDF Pages.action' y no 'Combine\ PDF\ Pages.action' por lo que tus escapes ya están ahí.

2voto

David Anderson Puntos 2189

Bueno, aquí está la forma en AppleScript:

set inpath1 to quoted form of "/Users/user1/Dropbox/z_Scripts/ex1.pdf"
set inpath2 to quoted form of "/Users/user1/Dropbox/z_Scripts/ex2.pdf"
do shell script quoted form of "/System/Library/Automator/Combine PDF Pages.action/Contents/MacOS/join" & " -o output " & inpath1 & " " & inpath2

El comando que se está ejecutando en bash para el script anterior es:

'/System/Library/Automator/Combine PDF Pages.action/Contents/MacOS/join' -o output '/Users/user1/Dropbox/z_Scripts/ex1.pdf' '/Users/user1/Dropbox/z_Scripts/ex2.pdf'

Sin embargo, la forma en que interpreto tu pregunta me hace pensar que quieres esto:

on quotedform from s
    do shell script "printf '%q' " & quoted form of s
end quotedform

set inpath1 to quotedform from "/Users/user1/Dropbox/z_Scripts/ex1.pdf"
set inpath2 to quotedform from "/Users/user1/Dropbox/z_Scripts/ex2.pdf"
set z to (quotedform from "/System/Library/Automator/Combine PDF Pages.action/Contents/MacOS/join") & " -o output " & inpath1 & " " & inpath2

El comando que se está ejecutando en bash para el script anterior es:

/System/Library/Automator/Combine\ PDF\ Pages.action/Contents/MacOS/join -o output /Users/user1/Dropbox/z_Scripts/ex1.pdf /Users/user1/Dropbox/z_Scripts/ex2.pdf

Creo que usar quoted form of por sí solo sería más seguro. Imagino que hay situaciones donde quotedform from podría fallar.

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