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

Applescript:可由所有脚本访问的系统范围全局变量,applescript,acrobat,osascript,preflight,Applescript,Acrobat,Osascript,Preflight,我们有一个PDF文档处理系统,在AppleScript中实现(我们使用osascript从shell调用脚本)。在一些脚本中,我们从Applescript中调用Acrobat飞行前水滴 这通常不会有问题。但是,在某些情况下,处理的文档很大或/或很复杂。在编写报告并将文档移动到“success”或“failure”文件夹之前,水滴将控制权返回到脚本。结果是该过程继续,但如果没有移动的文件,它最终会失败 到目前为止,解决办法是在这些吊滴呼叫之后增加延迟。这确实有帮助,但对于小文档来说这是浪费时间,而

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

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

到目前为止,解决办法是在这些吊滴呼叫之后增加延迟。这确实有帮助,但对于小文档来说这是浪费时间,而且总是有一个大而复杂的文档需要比延迟更长的时间

我们还发现,完成报告编写和移动文档所需的时间取决于系统的速度(必须是预期的…)

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

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

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

那么,有没有一种方法可以设置一个位置,在那里可以存储机器参数,并且可以从任何Applescript轻松调用它,不管它本身是如何调用的


非常感谢您的建议。

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


中有一个带有示例的描述。如果您只需要跟踪一个参数,一个简单的建议是在每台机器的已知位置有一个文本文件。文本文件的唯一内容是机器参数。我喜欢使用应用程序支持文件夹这类东西

假设您的机器参数是CPU速度。您可以在
/Library/Application Support/Preflight Scripts/machinecpu.txt
中保存文本文件,内容如下:

2.4
然后在Applescript中,您只需读取文本文件:

set machineParam to read file "Macintosh HD:Library:Application Support:Preflight Scripts:machinecpu.txt"

谢谢你的提示。由于整个系统是使用git分布的,所以在git目录范围内更好。为了让事情保持开放,plist方法有一些优势。