Automator:在 'Run JavaScript' 操作中使用传递的文件的文件名

Automator: use the passed file's filename in 'Run JavaScript' action

我在提取 'Run JavaScript' 操作中传递的文件的标题时遇到问题。

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

如果我在 'Run JavaScript' 操作之前添加一个 'Set Value of Variable' 操作,变量似乎被分配给实际文件。

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

我能够生成一个 Automator 工作流,它将提供所选文件的名称作为 运行 JavaScript 操作的输入。我没有足够的 Whosebug 声誉来 post 截图。以下是操作列表:

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

运行 AppleScript 动作:

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

return fileName

运行 JavaScript

运行JavaScript的结果是文件名。 可能有更有效的方法来执行此操作,但我不熟悉它。

祝你好运,

使用 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;
}

和文件夹操作工作流程,仅使用 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;
}

希望能帮到你