5

私はapplescriptsに不慣れで、プロセスを自動化しようとしていますが、ディレクトリ内にスペースがある場合、スクリプトを介してディレクトリをどのように変更しますか?私のコマンドは正しいはずですが、構文エラーがポップアップし続けます:

Expected “"” but found unknown token.

これが私のスクリプトです:

tell application "Terminal"
activate
do script "cd ~/Pictures/iPhoto\ Library"
end tell

どこが間違っているのかわかりません。私の端末では正常に動作します。

たくさんの人に感謝します!

更新:これは最もうまくいきました!!

# surround in single quotes
tell application "Terminal"
    activate
    do script "cd  '/Users/username/Pictures/iPhoto Library'"
end tell
4

1 に答える 1

7

いくつかの方法があります。

# escape the quotes with a backslash. AND Escape the first backslash for Applescript to accept it.
tell application "Terminal"
    activate
    do script "cd ~/Pictures/iPhoto\\ Library"
end tell

# surround in double quotes and escape the quotes with a backslash. 
tell application "Terminal"
    activate
    do script "cd \"/Users/username/Pictures/iPhoto Library\""
end tell

# surround in single quotes using quoted form of 
tell application "Terminal"
    activate
    do script "cd " & quoted form of "/Users/username/Pictures/iPhoto Library"
end tell
# surround in single quotes
tell application "Terminal"
    activate
    do script "cd  '/Users/username/Pictures/iPhoto Library'"
end tell

また、パス全体で引用符を使用すると、チルダが拡張されることはありません。したがって、別の方法でユーザー名を取得する必要があります。

例:

# inserting the user name. And surrond in brackets so the name and path are seen as one string before the quotes are added
set whoami to do shell script "/usr/bin/whoami"
tell application "Terminal"
    activate
    do script "cd /Users/" & quoted form of whoami & "/Pictures/iPhoto\\ Library"
end tell



tell application "System Events" to set whoami to name of current user
# inserting the user name. And surrond in brackets so the name and path are seen as one string before the quotes are added
tell application "Terminal"
    activate
    do script "cd /Users/" & quoted form of (whoami & "/Pictures/iPhoto Library")
end tell

ご覧のとおり、これを行うには複数の方法があります。

または、ディレクトリ部分を引用してください。

例。

tell application "Terminal"
    activate
    do script "cd ~" & quoted form of "/Pictures/iPhoto Library"
end tell
于 2012-12-22T18:49:43.303 に答える