我一直在用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
我在“Distill sourcePath inputFile1 adobePDFSettingsPath fullPathToJobOptions”行中收到错误。更准确地说是“sourcePath”这个词。 错误是: “语法错误:预期行结束但找到标识符”
这可能是什么问题? (感谢您提供的任何帮助!):)
答案 0 :(得分:3)
在
tell application "Acrobat Distiller"
编译器可以看到程序的名称并在编译时加载程序的字典。有了字典,它知道Distill
的含义及其参数是什么。
与
相同tell application "/Applications/Adobe Acrobat XI Pro/Acrobat Distiller.app"
程序的名称(实际路径)就在引号中,编译器可以查看应用程序以提取其字典。
在
tell application thePathToDistiller
编译器不知道您正在与哪个程序进行交互。只有在运行时,脚本才知道存储在thePathToDistiller
中的值,而且让编译器知道要查看哪个应用程序的字典为时已晚。
答案 1 :(得分: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
ADDITION:
我刚用iTunes测试过它;
set thePathToDistiller to "/Applications/iTunes.app"
using terms from application "iTunes"
tell application thePathToDistiller
playpause
end tell
end using terms from
并且有效。