16 votes

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

Le code suivant, qui permet de purger un répertoire de manière récursive, ne fonctionne pas car je ne parviens pas à passer l'étape de l'identification de l'utilisateur. Soutien aux applications dossier.

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 puis-je contourner cette erreur ?

13voto

Vous devez doubler les barres obliques inversées et également échapper les autres espaces :

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

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

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

quoted form of remplace ' avec '\'' et entoure la chaîne de caractères de guillemets simples, ce qui fait qu'elle ne fonctionne pas avec les chemins qui commencent par ~/ .

12voto

adayzdone Points 1798

Essayez :

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

6voto

Abhishek Jain Points 161
do shell script "open -n /Applications/App\\ Store.app"

Manipuler le space avec \\ .

Par exemple, remplacer App Store.app avec App\\ Store.app .

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X