AppleScript'te kabuk komutlarını yürütürken boş boşluklarla ilgili sorun


12

Uygulama Desteği klasörünü geçemediğim için bir dizini yinelemeli olarak temizlemek için aşağıdaki kod çalışmıyor .

try
    do shell script "rm -r ~/Library/Application\ Support/Google/Chrome/Default/Pepper Data/Shockwave Flash"
end try
  • Eğer kullanırsam ~/Library/Application Support/Google...hiçbir şey olmaz. Hangisi bekleniyor.
  • Kullanırsam ~/Library/Application\ Support/Google...hata iletisi nedeniyle komut dosyasını kaydedemiyorum:Syntax Error Expected “"” but found unknown token.

Bu hatayı nasıl çözebilirim?

Yanıtlar:


10

Deneyin:

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

8

Ters eğik çizgileri iki katına çıkarmalı ve diğer alanlardan da kaçmalısınız:

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

veya yoldan başka bir şekilde kaçabilir:

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

quoted form ofcümledeki 'ile '\''ve ile başlayan yolları ile çalışmaz böylece, tek tırnak ile dize çevreler ~/.


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

Kulp spaceile \\.

Örneğin App Store.appile değiştirin App\\ Store.app.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.