我们有一个 PDF 文档处理系统,用 AppleScript 实现(我们使用 osascript 从 shell 调用脚本)。在某些脚本中,我们从 Applescript 中调用 Acrobat Preflight Droplet。
这通常不会出现问题。然而,在某些情况下,处理的文档很大或/和很复杂。在编写报告并将文档移至“成功”或“失败”文件夹之前,Droplet 将控制权返回给脚本。结果是该过程继续,但如果没有移动的文件,它最终会失败。
到目前为止的解决方法是在这些 Droplet 调用之后添加延迟。这确实有帮助,但对于小文档来说这是浪费时间,而且总会有一个足够大且复杂的文档需要比延迟更长的时间。
我们还发现,完成撰写报告和移动文档所需的时间取决于系统的速度(必须预料到......)。
解决方法是根据文档大小、页数和与机器相关的参数来计算延迟。文档大小和页数没什么大不了的;它们可以在 Applescript 中检索。
问题在于与机器相关的参数,该参数可以通过实验确定。但是如何使该参数可供所有需要它的脚本使用?
将其合并到脚本中不是一个选择,因为我们安装了许多系统,如果我们这样做,我们最终会陷入维护噩梦。在初始系统调用中将其作为参数传递也是不可能的,因为调用很多,并且再次会导致维护噩梦。
那么,有没有一种方法可以设置一个位置,可以存储该机器参数并从任何 Applescript 轻松调用该参数,无论它本身如何调用。
非常感谢您的建议。
最佳答案
您可能会发现系统事件中的属性列表套件很有用。这是存储和检索此类信息的标准方法。属性列表文件本身只是 XML 文件,因此您甚至可以在 AppleScript 之外创建它们,然后在脚本中读取它们。
关于Applescript:所有脚本都可以访问的系统范围全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22824941/