Problema con espacios vacíos al ejecutar comandos de shell en AppleScript

12

El siguiente código para purgar un directorio de forma recursiva no funciona porque no puedo pasar de la carpeta de Soporte de aplicaciones .

try
    do shell script "rm -r ~/Library/Application\ Support/Google/Chrome/Default/Pepper Data/Shockwave Flash"
end try
  • Si lo uso ~/Library/Application Support/Google...no pasa nada. Lo cual se espera.
  • Si lo uso, ~/Library/Application\ Support/Google...no puedo guardar el script debido al mensaje de error:Syntax Error Expected “"” but found unknown token.

¿Cómo puedo evitar este error?

Gentmatt
fuente

Respuestas:

10

Tratar:

set pathwithSpaces to "/Users/John/Desktop/This is a test.docx"
do shell script "rm -r " & quoted form of pathwithSpaces
adayzdone
fuente
8

Tienes que duplicar las barras invertidas y también escapar de los otros espacios:

do shell script "rm -r ~/Library/Application\\ Support/Google/Chrome/Default/Pepper\\ Data/Shockwave\\ Flash"

o escapar del camino de otra manera:

do shell script "rm -r ~/'Library/Application Support/Google/Chrome/Default/Pepper Data/Shockwave Flash'"

quoted form ofsustituye 'con '\''y rodea a la cadena con comillas simples, por lo que no funciona con las rutas que comienzan con ~/.

Lri
fuente
3
do shell script "open -n /Applications/App\\ Store.app"

Manejar spacecon \\.

Por ejemplo reemplazar App Store.appcon App\\ Store.app.

Abhishek Jain
fuente