0

我用 osascript(js) 在 alfred 工作流程中编写了一些脚本。众所周知, console.logundefined日志回显到标准输出后,我们无法使用它将结果传递给工作流输出,例如clipboard. 然后我发现我可以使用 eval 或者只是运行一个表达式来将一些东西传递给标准输出。但我们知道它会在标准输出中添加一个换行符。然后,我得到了一个带有换行符的结果,这是额外的。这不是解决我的问题的完美方法。还有其他决议吗?

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

代码的功能可以忽略。只需关注如何在没有换行符的情况下进行回显。谢谢你。

4

2 回答 2

3

Alfred 3.0 现在有一个“Trim Whitespace”转换。您可以在右键单击 > 实用程序 > 变换下找到它。

在此处输入图像描述

于 2016-06-28T19:25:56.183 回答
2

我找不到使用 osascript(JS) 的方法。但还有另一种方式。

  1. 将脚本语言从 osascript(JS) 更改为 bash。
  2. 脚本:获取 osascript 的结果,修剪多余的换行符。

    osascript -l JavaScript process.js "{query}" | tr -d '\n'
    
  3. 将您的代码解析为工作流文件夹中的 process.js。添加代码以从命令行读取参数。(特别感谢mikaelbr/node-osascript

    var app = Application.currentApplication();
    app.includeStandardAdditions = true;
    
    ObjC.import('Cocoa');
    var args = ObjC.deepUnwrap($.NSProcessInfo.processInfo.arguments).slice(4);
    
    var query = args[0].split(' ');
    var set1 = query[0].split(',');
    var set2 = query[1].split(',');
    var res = set1.filter(function (id,index){
        return set2.indexOf(id) != -1;
    })
    res.join(query[2] || ',')
    
于 2015-12-02T14:08:39.203 回答