什么错误-1752"脚本似乎不属于AppleScript." 实际上意味着

Ian*_*Ian 1 applescript automator

我正在尝试编写几个共享常用功能的AppleScript脚本.理想情况下,它们将包含一个单独的文件,用于定义这些函数.

由于这将在存储库中而不是锁定到特定的计算机,因此我不能依赖脚本库目录来执行此操作.我正在尝试从相对路径加载脚本.

但它似乎都没有用.起初我认为这个问题与目录名中的空格有关,但是在我从一个不包含空格的目录中包含的测试之后,很明显osascript是找到该文件并且只是拒绝打开它.

错误"脚本似乎不属于AppleScript." 编号-1752来自"/path/to/common.applescript"

这甚至意味着什么,我该如何解决?

foo*_*foo 5

AppleScript的内置库加载器(10.9+)和load script命令(所有OS版本)都需要编译(.scpt/ .scptd)AppleScript文件[1].OSA对源代码文件格式一无所知(例如.applescript),并且无法自行读取或写入它们; 像脚本编辑器只外部工具,osacompile,osadecompile知道该怎么做.

您可以将已编译的文件存储在repo [2]中,也可以编写一个部署脚本来运行未编译的(.applescript)文件osacompile,然后将它们复制到您的Script Libraries文件夹(或者您正在部署它们的任何位置).

-

[1]是的,这很烦人,但OSA早于"现代"SCM系统,其文件系统交互更多地建立在Smalltalk机器风格持久性上,而不是Unix的"让我们假装一切都是ASCII文本文件"的方法.

[2]虽然你将失去区分它们的能力,除非你想要使用你的SCM的diff钩子,所以它运行.scpt[d]文件osadecompile来创建临时.applescript文件,然后可以正常地进行区分.