Automator:在“运行JavaScript”操作中使用传递的文件文件名

时间:2015-05-11 05:47:45

标签: javascript automator

我在“运行JavaScript”操作中提取传递文件的标题时遇到问题。

当我将文件传递给“运行JavaScript”操作时,似乎准备好的函数的两个参数run(), - inputparameters都不包含文件名。

如果我在“运行JavaScript”操作之前添加“设置变量值”操作,则会看到该变量被分配了实际文件。

如何在“运行JavaScript”操作中获取传递文件的文件名?

2 个答案:

答案 0 :(得分:1)

我能够制作一个Automator工作流程,它将提供所选文件的名称作为运行JavaScript 操作的输入。我没有足够的StackOverflow信誉来发布截图。以下是操作列表:

询问Finder项目(我将其设置为允许单个文件)

运行AppleScript操作:

tell application "Finder" to set fileName to (item 1 of input)'s name

return fileName

运行JavaScript

运行JavaScript 的结果是文件的名称。 可能有更有效的方法来做到这一点,但我不熟悉它。

祝你好运,

答案 1 :(得分:1)

使用Automator我可以构建一个仅使用JavaScript打开文件的工作流程:

运行JavaScript

function run(input, parameters) {
   var FINDER = Application("Finder");
   FINDER.includeStandardAdditions = true;

   FINDER.activate();
   var origin_file = FINDER.chooseFile({withPrompt: "Please select a document to process:"});
   FINDER.open(origin_file);

   return input;
}

和一个Folder Action工作流程,用于显示仅使用JavaScript移动到文件夹的文件路径:

运行JavaScript

function run(input, parameters) {
   var app = Application.currentApplication();
   app.includeStandardAdditions = true;
   var text = "FileName = " + input[0];
   var options = { };
   app.displayAlert(text, options);

   return input;
}

我希望能有所帮助