如何为AppleScript SCPT文件选择JavaScript?

时间:2018-01-11 02:09:55

标签: javascript applescript osascript

我正在调用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"

只要通过更改扩展程序来工作,我认为这是有效的。

1 个答案:

答案 0 :(得分:1)

AppleScript和JavaScript for Automation(JXA)使用相同的文件扩展名:" .scpt"。当您在脚本编辑器中时,有一个语言弹出窗口,您可以在其中选择:

enter image description here

这不是从AppleScript到JXA的自动转换工具。

有关JXA的更多信息,请参阅
JXA Resources