【问题标题】:What does error –1752 "Script doesn’t seem to belong to AppleScript." actually mean?什么错误 –1752“脚本似乎不属于 AppleScript。”实际上是什么意思?
【发布时间】:2015-04-22 22:51:47
【问题描述】:

我正在尝试编写几个共享通用功能的 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 是否以文本格式而不是编译脚本格式存储?
  • 它是文本格式,因为它是存储库的一部分。
  • @Zero 这对我没有多大帮助。谷歌搜索该错误给了我information that seems completely unrelated

标签: applescript automator


【解决方案1】:

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

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

--

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

[2] 尽管您将失去区分它们的能力,除非您想使用 SCM 的 diff 挂钩,因此它通过 osadecompile 运行 .scpt[d] 文件以创建临时的 .applescript 文件,然后可以正常进行区分。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-08-08
  • 1970-01-01
  • 1970-01-01
  • 2017-02-23
  • 2020-02-15
  • 2021-09-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多