2

在 OSA 脚本中使用Application.currentApplication()时,它会在从命令行运行时发出以下警告:

warning: failed to get scripting definition from /usr/bin/osascript; it may not be scriptable.

为什么会发生这种情况以及可以做些什么呢?

例子

应用程序.js:

#!/usr/bin/env osascript -l JavaScript

var app = Application.currentApplication();
app.includeStandardAdditions = true;
console.log('Hello, I’m ' + app.pathTo(this));

外壳输出:

❯❯❯ ./app.js
2015-03-01 12:39:29.611 app.js[65539:6266286] warning: failed to get scripting definition from /usr/bin/osascript; it may not be scriptable.
Hello, I’m /Users/aaron/Desktop/app.js
4

1 回答 1

2

JXA 发行说明如下:

6. 获取正在运行脚本的应用程序

Application.currentApplication()

是的,我认为它也会给我一个指向我的脚本本身的脚本对象。

我使用您的 JavaScript 在 Skript-Editor 中直接对其进行了测试:

var app = Application.currentApplication();
app.includeStandardAdditions = true;
console.log('Hello, I’m ' + app.pathTo(this));

和事件标签给了我

app = Application("Skript-Editor")
    app.pathTo(null)
    /* Hello, I’m /Users/.../Desktop/app.scpt */

osascript函数运行此 app.scpt 时,会currentApplication()返回 osascript 并且环境会警告该应用程序可能无法编写脚本......这是一个错误吗?我不知道,osascript 是正在执行的应用程序,并且它不可编写脚本:-/

但除此之外:那么如何app执行该函数pathTo以及为什么将null其传递给它?

只是我的 2 美分……迈克尔/汉堡

于 2015-03-04T21:27:04.863 回答