我正在尝试将我的.applescript文件分离为不同的文件,以整理事物。

我有一个名为Test.applescript的JS AppleScript文件,该文件试图运行JS AppleScript文件Group Tracks Dependency.applescript,我要做的是将参数传递给依赖项脚本并从中获取返回值。 (它创建iTunes曲目数组的数组)。

测试苹果脚本

(function() {
    var app = Application('iTunes');
    app.includeStandardAdditions = true;

    app.doShellScript('Group Tracks Dependency.applescript');

    return "Done";
})();

// For quick logging
function log(obj) {
    this.console.log(obj);
}


组跟踪Dependency.applescript

(function(selection) {

    return getGroupsOfTracks(selection);

    function getGroupsOfTracks(originalTracksArray) {
        if (originalTracksArray == null || originalTracksArray.length == 0)
            return null;

        var tracks = originalTracksArray.slice();
        var groups = [];
        while (true) {
            var group = [];
            group.push(tracks[0]);
            tracks = tracks.slice(1);

            while (true) {
                if (!tracks[0]) break;
                if (tracks[0].album() != group[0].album())
                    break;
                if (tracks[0].artist() != group[0].artist())
                    break;
                if (tracks[0].discNumber() != group[0].discNumber())
                    break;
                group.push(tracks[0]);
                tracks = tracks.slice(1);
            }

            groups.push(group);
            if (!tracks[0]) break;
        }

        return groups;
    }
})();


当我尝试运行测试脚本时,出现此错误(第5行是app.doShellScript行):

Error on line 5: Error: A privilege violation occurred.


有什么办法可以解决这个问题?我还应注意,我希望其他人将来能够下载这些脚本并在自己的iTunes资料库上运行它们(尽管目前它对用户不友好)。

如果没有办法解决这个问题,那么导入另一个JS AppleScript文件是否可行?

最佳答案

我认为您可能正在进行使用.doShellScript无法赢得胜利的战斗。

苹果的方法是使用https://developer.apple.com/library/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/OSX10-11.html#//apple_ref/doc/uid/TP40014508-CH110-SW1上定义的脚本库

不幸的是,脚本库具有只能传递简单变量的约束。

另一种方法是使用require,可以用https://github.com/dtinth/JXA-Cookbook/wiki/Importing-Scripts这样的代码定义

关于javascript - 从另一个JSAppleScript运行另一个JS AppleScript时出现权限错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37176528/

10-12 20:12