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?

Réponses:


10

Essayer:

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

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


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

Manipulez le spaceavec \\.

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.