2015-11-02 21 views
0

我用alascript(js)在alfred工作流程中編寫了一些腳本。正如我們所知,console.log在將日誌回顯到stdout之後會留下undefined,我們無法使用它將結果傳遞到工作流程輸出,如clipboard。然後我發現我可以使用eval或者只是運行一個表達式來將某些東西傳遞給標準輸出。但是我們知道它會在stdout中添加一個換行符。然後,我得到了一個換行符,這是一個額外的結果。這不是解決我的問題的完美方式。還有其他解決方案嗎?如何在alfred的`run script`工作流中使用osascript在沒有換行的情況下回顯一些內容?

enter image description here

enter image description here

enter image description here

代碼的功能可以忽略不計。只關注如何在沒有換行拖尾的情況下進行回顯。謝謝。

+0

請修改您的問題以包含您迄今爲止編寫的代碼。 –

+0

@Jordan新增。但我認爲在這個問題中代碼不太重要。 – chestnut

回答

1

我無法找到一種方法來使用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] || ',') 
    
+1

這可能是我見過的最佳替代解決方案。 – chestnut

2

阿爾弗雷德3.0現在有一個 「微調空白」 transform。你可以在右鍵> Utilities> Transform下找到它。

enter image description here

相關問題