【问题标题】:Reveal In Finder Using JXA (Javascript for Automation on Mac)Reveal In Finder Using JXA (Javascript for Automation on Mac)
【发布时间】:2017-09-03 05:13:53
【问题描述】:

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

在其他 Javascript 实现中,我习惯做这样的事情:

var f = new File("path/to/my/file/or/folder");
f.execute();

它似乎在 JXA 中不起作用。我可以使用这样的方式在树上上下导航:

var run = function(){
    var finder = Application("Finder");
    finder.includeStandardAdditions = true;

    return finder.startupDisk.folders["Users"].open();
}

但这似乎很乏味,我不知道如何使它动态化。有没有办法采用 POSIX 路径并在该位置打开查找器?

感谢大家的帮助!

【问题讨论】:

    标签: javascript macos automation javascript-automation


    【解决方案1】:
    (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();
    })();
    

    【讨论】:

    • 您不需要变量 a 和 sa。 “使用严格”有什么作用?
    • 只有 pathTo 选项才需要标准添加参考。使用严格,除其他外,可以启用一组更丰富的错误消息。
    猜你喜欢
    • 2017-06-28
    • 2017-06-28
    • 2015-04-16
    • 2016-10-27
    • 2016-09-09
    • 2015-01-19
    • 2016-04-02
    • 2018-03-19
    • 2019-12-24
    相关资源
    最近更新 更多