使用macOS Automator服务工作流程在Finder中运行“为每个文件或文件夹运行JavaScript”

问题描述 投票:-1回答:1

[试图编写一个我可以控制并单击多个文件的服务,运行一个Automator服务,该服务将这些文件的路径复制到剪贴板,并执行一些字符串替换。

所以这就是我得到的:

1。输入

the input

2。运行JavaScript

function run(input, parameters) {

    var path = String(input);
    path = path.replace(/^.+\/websites\//, "/"); // this should remove some stuff off the paths up until /websites/

    return path;
}

3。复制到剪贴板

问题:仅将最后一个文件复制到剪贴板。

如何解决此问题,以便选择多个文件,使Automator在所有路径上循环,使用JavaScript进行必要的文本替换,并将所有新路径复制到剪贴板?

我已经尝试过for (path in input) { ... },但是path是具有输入索引值的字符串...

PS:如何使用AppleScript做到这一点?

javascript applescript automator finder
1个回答
0
投票

由于这是JavaScript,因此可以奢侈地使用map,这意味着不需要传统意义上的循环:

function run(input) {
    return input.map( fp => fp.replace(/^.+\/websites\//. '/') );
}

您应该检查的一件事(我没有这样做,因为我对上下文还不完全清楚)是input接收posix格式的路径,例如/path/to/something,而不是旧的HFS格式,例如Macintosh HD:path:to:something

© www.soinside.com 2019 - 2024. All rights reserved.