Problema con spazi vuoti durante l'esecuzione di comandi shell in AppleScript


12

Il seguente codice per eliminare ricorsivamente una directory non funziona perché non riesco a superare la cartella Supporto applicazioni .

try
    do shell script "rm -r ~/Library/Application\ Support/Google/Chrome/Default/Pepper Data/Shockwave Flash"
end try
  • Se uso ~/Library/Application Support/Google...non succede nulla. Quale è previsto.
  • Se uso ~/Library/Application\ Support/Google...non riesco a salvare lo script a causa del messaggio di errore:Syntax Error Expected “"” but found unknown token.

Come posso aggirare questo errore?

Risposte:


10

Provare:

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

8

Devi raddoppiare le barre rovesciate e sfuggire anche agli altri spazi:

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

o sfuggire al percorso in altro modo:

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

quoted form ofsostituisce 'con '\''e circonda la stringa con apici, in modo che non funziona con i percorsi che iniziano con ~/.


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

Gestire il spacecon \\.

Ad esempio, sostituire App Store.appcon App\\ Store.app.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.