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?

Odpowiedzi:


10

Próbować:

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

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


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

Poradzić sobie spacez \\.

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.