2014-12-27 2 views
0

Я делаю некоторые вещи в Applescript, моему другу и обычно с небольшим количеством поисков/исследований могу преодолеть проблемы, которые я испытываю сталкиваются. Однако ... Я нашел проблему, я просто не понимаю.Applescript - ожидаемый конец строки, но найденный идентификатор

Например, у меня есть:

tell application "Acrobat Distiller" 
    Distill sourcePath inputFile1 adobePDFSettingsPath fullPathToJobOptions 
end tell 

Если я заменить его на:

tell application "/Applications/Adobe Acrobat XI Pro/Acrobat Distiller.app" 
    Distill sourcePath inputFile1 adobePDFSettingsPath fullPathToJobOptions 
end tell 

У меня нет никакой проблемы ... но ... Если я что-то вроде :

set thePathToDistiller to "/Applications/Adobe Acrobat XI Pro/Acrobat Distiller.app" 

tell application thePathToDistiller 
    Distill sourcePath inputFile1 adobePDFSettingsPath fullPathToJobOptions 
end tell 

Я получаю сообщение об ошибке на "перегонять SourcePath inputFile1 adobePDFSettingsPath fullPathToJobOptions" лин е. Точнее, на слово «sourcePath». Ошибка: «Ошибка синтаксиса: ожидаемый конец строки, но найденный идентификатор»

В чем проблема? (спасибо за любую помощь вы можете дать!) :)

ответ

3

В

tell application "Acrobat Distiller" 

компилятор может увидеть название программы и загрузку словаря программы во время компиляции. Со словарем в руке он знает, что означает Distill и каковы его параметры.

То же самое с

tell application "/Applications/Adobe Acrobat XI Pro/Acrobat Distiller.app" 

Имя (на самом деле путь) программы прямо там в кавычках, и компилятор может посмотреть на приложение, чтобы извлечь его словарь.

В

tell application thePathToDistiller 

компилятор не знает, какую программу вы взаимодействуете с. Это только во время выполнения, что сценарий знает, значение, хранящееся в thePathToDistiller, и это слишком поздно, чтобы позволить компилятору знать, какие приложения словарь, чтобы посмотреть в.

+0

Спасибо за помощь. После прочтения вашего ответа я понял проблему, и я надеялся, что код Zero сможет решить проблему, но такая же ошибка возникла. Означает ли это, что я пытаюсь сделать ... это невозможно в Applescript? – Fernando

2


Вы можете обернуть его вокруг «, используя термины из ... "блок, как это:

set thePathToDistiller to "/Applications/Adobe Acrobat XI Pro/Acrobat Distiller.app" 
using terms from application "Acrobat Distiller" 
tell application thePathToDistiller 
    Distill sourcePath inputFile1 adobePDFSettingsPath fullPathToJobOptions 
end tell 
end using terms from 



Сложение:

Я просто проверил его с ITunes;

set thePathToDistiller to "/Applications/iTunes.app" 
using terms from application "iTunes" 
    tell application thePathToDistiller 
     playpause 
    end tell 
end using terms from 

и что работает.

+0

Спасибо за помощь. Странно, однако ... Я понимаю, что вы написали (особенно после прочтения ответа от ganbustein), но даже с вашим кодом у меня такая же ошибка. – Fernando

+0

У вас есть разные версии Distiller?Возможно, AppleScript использует версию, которая не понимает команду «Distill» или имеет для нее другой синтаксис (если у вас есть такая версия). Просто догадка. –

+0

Как ни странно ... этот вопрос объясняется тем, что у моего друга две версии Distiller, но у меня нет этой проблемы. Поэтому я пытался написать код для работы на обоих компьютерах без изменения кода. Но как ответ на ваш вопрос ... нет, у меня только 1 дистиллер. Думаю, я откажусь от этого пути и пойду за другим. Спасибо, в любом случае! :) – Fernando

Смежные вопросы

 Смежные вопросы