发生什么错误–1752“脚本似乎不属于AppleScript。”到底是什么意思?

问题描述 投票:1回答:1

我正在尝试编写一些共享常用功能的AppleScript脚本。理想情况下,他们会include a separate file where these functions are defined

由于这将存储在存储库中,而不是锁定在特定的计算机上,所以我不能依靠脚本库目录来执行此操作。我正在尝试load a script from a relative path

但是似乎没有一个起作用。起初,我认为问题与spaces in the directory name有关,但是在进行了测试(其中我从一个不包含空格的目录中包含该目录)之后,很显然osascript正在查找文件,只是拒绝打开它。

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

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

applescript automator
1个回答
5
投票

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

您可以将已编译的文件存储在存储库[2]中,也可以编写将它们复制到.applescript文件夹(或任何位置)时通过osacompile运行未编译(Script Libraries)文件的部署脚本。您正在部署它们)。

-

[1]是的,这很烦人,但是OSA早于“现代” SCM系统,并且其文件系统交互更多地基于Smalltalk machine样式持久性建模,而不是Unix的“让我们假装一切都是ASCII文本文件”方法。

[2]尽管您将失去对它们进行比较的能力,但是除非您想弄乱SCM的diff挂钩,否则它会通过.scpt[d]运行osadecompile文件来创建临时的.applescript文件,然后可以像平常一样进行比较。

© www.soinside.com 2019 - 2024. All rights reserved.