AppleScriptでシェルコマンドを実行するときの空白の問題


12

次のディレクトリを再帰的に削除するコードは、アプリケーションサポートフォルダーを通過できないため機能しません。

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.

このエラーを回避するにはどうすればよいですか?

回答:


10

試してください:

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

8

バックスラッシュを2倍にし、他のスペースもエスケープする必要があります。

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置き換え''\''、それはで始まるパスでは動作しないように、単一引用符で文字列を囲んでいます~/


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.