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?

Respuestas:


10

Tratar:

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

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 ~/.


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

Manejar spacecon \\.

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.