Problème avec des espaces vides lors de l'exécution de commandes shell dans AppleScript

12

Le code suivant pour purger un répertoire de manière récursive ne fonctionne pas car je ne peux pas dépasser le dossier Application Support .

try
    do shell script "rm -r ~/Library/Application\ Support/Google/Chrome/Default/Pepper Data/Shockwave Flash"
end try
  • Si j'utilise ~/Library/Application Support/Google...rien ne se passe. Ce qui est attendu.
  • Si j'utilise, ~/Library/Application\ Support/Google...je ne peux pas enregistrer le script en raison du message d'erreur:Syntax Error Expected “"” but found unknown token.

Comment contourner cette erreur?

gentmatt
la source

Réponses:

10

Essayer:

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

Vous devez doubler les barres obliques inverses et également échapper aux autres espaces:

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

ou échapper au chemin d'une autre manière:

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

quoted form ofremplace 'avec '\''et entoure la chaîne avec des guillemets simples, il ne fonctionne pas avec des chemins qui commencent par ~/.

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

Manipulez le spaceavec \\.

Par exemple, remplacez App Store.apppar App\\ Store.app.

Abhishek Jain
la source