Applescript:所有脚本都可以访问的系统范围全局变量

标签 applescript acrobat osascript preflight

我们有一个 PDF 文档处理系统,用 AppleScript 实现(我们使用 osascript 从 shell 调用脚本)。在某些脚本中,我们从 Applescript 中调用 Acrobat Preflight Droplet。

这通常不会出现问题。然而,在某些情况下,处理的文档很大或/和很复杂。在编写报告并将文档移至“成功”或“失败”文件夹之前,Droplet 将控制权返回给脚本。结果是该过程继续,但如果没有移动的文件,它最终会失败。

到目前为止的解决方法是在这些 Droplet 调用之后添加延迟。这确实有帮助,但对于小文档来说这是浪费时间,而且总会有一个足够大且复杂的文档需要比延迟更长的时间。

我们还发现,完成撰写报告和移动文档所需的时间取决于系统的速度(必须预料到......)。

解决方法是根据文档大小、页数和与机器相关的参数来计算延迟。文档大小和页数没什么大不了的;它们可以在 Applescript 中检索。

问题在于与机器相关的参数,该参数可以通过实验确定。但是如何使该参数可供所有需要它的脚本使用?

将其合并到脚本中不是一个选择,因为我们安装了许多系统,如果我们这样做,我们最终会陷入维护噩梦。在初始系统调用中将其作为参数传递也是不可能的,因为调用很多,并且再次会导致维护噩梦。

那么,有没有一种方法可以设置一个位置,可以存储该机器参数并从任何 Applescript 轻松调用该参数,无论它本身如何调用。

非常感谢您的建议。

最佳答案

您可能会发现系统事件中的属性列表套件很有用。这是存储和检索此类信息的标准方法。属性列表文件本身只是 XML 文件,因此您甚至可以在 AppleScript 之外创建它们,然后在脚本中读取它们。

https://apple.stackexchange.com/questions/58007/how-do-i-pass-variables-values-between-subsequent-applescript-runs-persistent 有示例说明

关于Applescript:所有脚本都可以访问的系统范围全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22824941/

相关文章:

Applescript:在没有扩展名的文件夹中获取文件名

macos - Applescript:如果不存在则创建新的文件夹结构

linux - 将大量文件分发到较小的组的脚本

javascript - 在网页浏览器中使用javascript在acrobat reader中切换页面

java - 无法运行程序 "osascript": error=2, 没有这样的文件或目录

applescript - 如何从 JavaScript JXA 调用 shell 命令?

objective-c - 有没有办法使用 AppleScript 单击 osx 菜单项而不访问 "System Events"?

objective-c - Adobe Acrobat 干扰使用 WebView 显示的 PDF 文件

.net - 使用 .net 在 pdf 中编辑 javascript

macos - 使用 osascript 命令在 Bash 中组合变量以形成发送到 AppleScript 的命令