运行 JavaScript "for each file or folder" 在 Finder 中选择,使用 macOS Automator 服务工作流程
Run JavaScript "for each file or folder" that's selected in Finder, using a macOS Automator service workflow
尝试编写一个我可以控制并单击多个文件的服务,运行 一个将这些文件的路径复制到剪贴板并执行一些字符串替换的 Automator 服务。
这就是我得到的:
1.输入
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。复制到剪贴板
问题: 只有最后一个文件被复制到剪贴板。
我该如何解决这个问题,这样我就可以 select 多个文件,让 Automator 循环遍历所有路径,使用 JavaScript 进行必要的文本替换,并将所有新路径复制到剪贴板?
我试过 for (path in input) { ... }
但是路径是一个带有输入索引值的字符串...
PS:我如何使用 AppleScript 执行此操作?
由于这是 JavaScript,您可以使用 map
,这意味着不需要传统意义上的循环:
function run(input) {
return input.map( fp => fp.replace(/^.+\/websites\//. '/') );
}
你应该检查的一件事(我没有检查,因为我不完全清楚上下文)是 input
接收 posix 格式的路径,例如/path/to/something
,而不是旧的 HFS 格式,例如Macintosh HD:path:to:something
.
尝试编写一个我可以控制并单击多个文件的服务,运行 一个将这些文件的路径复制到剪贴板并执行一些字符串替换的 Automator 服务。
这就是我得到的:
1.输入
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。复制到剪贴板
问题: 只有最后一个文件被复制到剪贴板。
我该如何解决这个问题,这样我就可以 select 多个文件,让 Automator 循环遍历所有路径,使用 JavaScript 进行必要的文本替换,并将所有新路径复制到剪贴板?
我试过 for (path in input) { ... }
但是路径是一个带有输入索引值的字符串...
PS:我如何使用 AppleScript 执行此操作?
由于这是 JavaScript,您可以使用 map
,这意味着不需要传统意义上的循环:
function run(input) {
return input.map( fp => fp.replace(/^.+\/websites\//. '/') );
}
你应该检查的一件事(我没有检查,因为我不完全清楚上下文)是 input
接收 posix 格式的路径,例如/path/to/something
,而不是旧的 HFS 格式,例如Macintosh HD:path:to:something
.