我正在调用Applescript scpt文件,当我打开AppleScript编辑器时,它可以选择使用JavaScript。
我想将AppleScript转换为JavaScript,但无法在其上找到任何文档(公告等等,以及Apple上的重定向)。
这是我的AppleScript:
#!/usr/bin/osascript
on run argv
set output to "{\"1st Parameter\":\"" & first item of argv & "\"}"
return output
end run
更多背景信息:
我试图遍历目录并从Excel导出。我只需要知道如何在SCPT文件中运行JavaScript,但这是背景知识。
#!/usr/bin/osascript
on run argv
#goal is to export multiple files to csv
#the plan is to
#pass in folder and loop through files or
#pass in array of files (paths as a comma separated string)
#pass in single file and call script multiple times
set processReportsScript to "excel -e '" & first item of argv & "' '" -o '" & second item of argv & "'.csv'"
do shell script processReportsScript
end run
更新:
在脚本编辑器中,我可以运行 JavaScript :
function run(args) {
var x = false;
var y = Application("Mail");
var running = y.running();
var id = y.id();
debugger;
if (x) {
console.log("Why isn't this being called?")
}
return "hello";
}
部分基于此guide。
然而,当我将JavaScript保存到SCPT文件并从外部应用程序调用它时,它会出现以下错误:
脚本错误:预期行结束等,但找到“(”。( - 2.741)
使用AppleScript时不会出现任何错误。
FYI外部应用程序将脚本传递给 osascript 。
更新2:
我将扩展名从scpt更改为js,现在它正在运行。我读到可以使用-l传递语言类型,但是当我这样做时,我会得到很多错误:
没有这样的组件" '的JavaScript'" 没有这样的组件"的JavaScript"
只要通过更改扩展程序来工作,我认为这是有效的。
答案 0 :(得分:1)
AppleScript和JavaScript for Automation(JXA)使用相同的文件扩展名:" .scpt"。当您在脚本编辑器中时,有一个语言弹出窗口,您可以在其中选择:
这不是从AppleScript到JXA的自动转换工具。
有关JXA的更多信息,请参阅
JXA Resources