ปัญหาเกี่ยวกับช่องว่างเมื่อรันคำสั่งเชลล์ใน AppleScript


12

รหัสต่อไปนี้เพื่อล้างไดเรกทอรีซ้ำไม่ทำงานเพราะฉันไม่สามารถผ่านโฟลเดอร์Application Support

try
    do shell script "rm -r ~/Library/Application\ Support/Google/Chrome/Default/Pepper Data/Shockwave Flash"
end try
  • ถ้าฉันใช้~/Library/Application Support/Google...ไม่มีอะไรเกิดขึ้น ซึ่งคาดว่า
  • หากฉันใช้~/Library/Application\ Support/Google...ฉันไม่สามารถบันทึกสคริปต์ได้เนื่องจากข้อความแสดงข้อผิดพลาด:Syntax Error Expected “"” but found unknown token.

ฉันจะแก้ไขข้อผิดพลาดนี้ได้อย่างไร?

คำตอบ:



8

คุณต้องเพิ่มแบ็กสแลชเป็นสองเท่าและต้องเว้นช่องว่างอื่น:

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

หรือหลบหนีด้วยวิธีอื่น:

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

quoted form ofแทนที่'ด้วยและบริเวณโดยรอบสตริงที่มีราคาเดียวดังนั้นจึงไม่ได้ทำงานกับเส้นทางที่เริ่มต้นด้วย'\''~/


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

จัดการกับspace\\

ยกตัวอย่างเช่นแทนที่ด้วยApp Store.appApp\\ Store.app

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.