使用JXA(Mac上用于自动化的Javascript)在Finder中显示

使用JXA(Mac上用于自动化的Javascript)在Finder中显示,javascript,macos,automation,javascript-automation,Javascript,Macos,Automation,Javascript Automation,我正在将多年来制作的一些自动机工作流转换为JXA,我在一些基本功能方面遇到了一些问题。首先,我只是尝试从特定路径在finder中打开一个文件夹。我在finder中打开了一个位置,但它似乎对文件夹不起作用 在其他Javascript实现中,我习惯于这样做: var f = new File("path/to/my/file/or/folder"); f.execute(); var run = function(){ var finder = Application("Finder");

我正在将多年来制作的一些自动机工作流转换为JXA,我在一些基本功能方面遇到了一些问题。首先,我只是尝试从特定路径在finder中打开一个文件夹。我在finder中打开了一个位置,但它似乎对文件夹不起作用

在其他Javascript实现中,我习惯于这样做:

var f = new File("path/to/my/file/or/folder");
f.execute();
var run = function(){
    var finder = Application("Finder");
    finder.includeStandardAdditions = true;

    return finder.startupDisk.folders["Users"].open();
}
它在JXA中似乎不起作用。我可以使用如下方式在树上来回导航:

var f = new File("path/to/my/file/or/folder");
f.execute();
var run = function(){
    var finder = Application("Finder");
    finder.includeStandardAdditions = true;

    return finder.startupDisk.folders["Users"].open();
}
但这看起来很乏味,我不知道如何让它充满活力。有没有一种方法可以使用POSIX路径并在该位置打开finder


谢谢你的帮助

您不需要变量a和sa。“use strict”的作用是什么?标准添加参考仅适用于pathTo备选方案。除其他外,使用strict可以提供更多信息的错误消息。您不需要变量a和sa。“use strict”的作用是什么?标准添加参考仅适用于pathTo备选方案。除其他外,使用strict可以提供更多信息的错误消息集。
(function () {
    'use strict';

    var a = Application.currentApplication(),
        sa = (a.includeStandardAdditions = true, a),
        fi = Application('Finder');

    var strPath = $('~/Code/')
        .stringByStandardizingPath.js

    fi.reveal(Path(strPath));

    // OR e.g.
    //fi.reveal(sa.pathTo('downloads folder'));

    fi.activate();
})();