Problem z pustymi spacjami podczas wykonywania poleceń powłoki w AppleScript

12

Poniższy kod do rekursywnego czyszczenia katalogu nie działa, ponieważ nie mogę przejść obok folderu Application Support .

try
    do shell script "rm -r ~/Library/Application\ Support/Google/Chrome/Default/Pepper Data/Shockwave Flash"
end try
  • Jeśli użyję, ~/Library/Application Support/Google...nic się nie stanie. Co jest oczekiwane.
  • Jeśli używam, ~/Library/Application\ Support/Google...nie mogę zapisać skryptu z powodu komunikatu o błędzie:Syntax Error Expected “"” but found unknown token.

Jak mogę obejść ten błąd?

gentmatt
źródło

Odpowiedzi:

10

Próbować:

set pathwithSpaces to "/Users/John/Desktop/This is a test.docx"
do shell script "rm -r " & quoted form of pathwithSpaces
adayzdone
źródło
8

Musisz podwoić odwrotne ukośniki i uciec z innych miejsc:

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

lub uciec ścieżce w inny sposób:

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

quoted form ofzastępuje 'z '\''i otacza łańcuch z apostrofami, więc to nie działa ze ścieżkami, które zaczynają ~/.

Lri
źródło
3
do shell script "open -n /Applications/App\\ Store.app"

Poradzić sobie spacez \\.

Przykładowo wymienić App Store.appz App\\ Store.app.

Abhishek Jain
źródło