Почему эта строка работает нормально в редакторе сценариев, а не в командной строке? - PullRequest
0 голосов
/ 06 января 2012

Строка:

set appPath to POSIX path of alias ":Applications:iTunes.app"

отлично работает в редакторе AppleScript и возвращает: "/Applications/iTunes.app/"

Но когда я запускаю в терминале следующую команду:

osascript -e 'set appPath to POSIX path of alias ":Applications:iTunes.app"'

Я получаю: 15:61: syntax error: File alias :Applications:iTunes.app wasn't found. (-43)

Почему?

1 Ответ

4 голосов
/ 06 января 2012

Я не уверен, откуда вы взялись ": Applications: iTunes.app" ... но это неверный путь.Пути, разделенные двоеточиями, которые используются в applecriptcript, всегда начинаются с имени вашего жесткого диска.Так что это должно быть что-то вроде «Macintosh HD: Applications: iTunes.app:».Я не могу сказать вам, почему это работает в редакторе яблочного сценария (вам просто повезло, я думаю;)), но я уверен, что если вы попробуете это правильно, он будет работать.

Обратите внимание, что путьЯ использовал концы с двоеточием, например."Macintosh HD: Приложения: iTunes.app:".В общем случае приложения - это файлы пакетов, что означает, что они действительно являются папками ... и папки заканчиваются двоеточием.

Обратите внимание, что когда вы приводите строку типа ": Applications: iTunes.app" к псевдониму (каквы делаете, помещая слово псевдоним первым), потому что это псевдоним, это означает, что файл в пути должен существовать.Это определение пути псевдонима.Файл должен существовать. И так как файл не может существовать из-за вашего неверного пути, вы получите ошибку.

Еще одно примечание: приведение к «пути posix» будет работать настрока, так что вам совсем не нужно слово «псевдоним» ... хотя вы можете получить неожиданные результаты, потому что, как я уже говорил, строковая часть вашего пути неверна (извините, что продолжаю говорить это!).

Последнее замечание: вот один из способов найти правильный путь к файлу в стиле яблочного скрипта.Просто запустите это и посмотрите на результат в AppleScript Editor.Это будет работать и для папок, если вы измените «file» на «folder» в коде.Попробуйте его в приложении, и вы увидите, что если приложение представляет собой файл пакета, то оно будет заканчиваться двоеточием.

(choose file) as text

В любом случае, я надеюсь, что это чему-то вас научит, когда вы будете продвигаться вперед со своими сценариями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...