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

时间:2015-04-22 22:51:47

标签: applescript automator

我试图编写几个共享常用功能的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"

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

1 个答案:

答案 0 :(得分:5)

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

您可以将已编译的文件存储在repo [2]中,也可以在将.applescript复制到{{1}时编写一个部署脚本,通过osacompile运行未编译的文件(Script Libraries)文件夹(或者你在哪里部署它们)。

-

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

[2] 虽然你将失去的能力,diff的他们,除非你想用你的SCM的差异挂钩渣土约所以它始终贯穿.scpt[d]文件osadecompile创建临时.applescript文件,然后可以正常分化。