[英]node.js: Run external command in new window
我正在編寫一個node.js腳本,該腳本在后台永久運行,並不時啟動文件下載。 我想使用WGET下載文件,因為它看起來更健壯,直到我真的知道我在用node.js做些什么。
問題是我想查看相關下載的進度。 但是我找不到以打開並顯示WGET的新外殼窗口的方式通過node.js啟動WGET的方法。
Node的exec和spawn函數在后台運行外部命令,讓我可以訪問輸出流。 但是由於我的腳本在后台運行(隱藏),所以我對輸出流的處理不多。
我嘗試通過運行“ cmd / c wget ...”打開一個新的Shell窗口,但這沒有任何區別。
有沒有一種方法可以通過node.js在新窗口中運行外部命令行進程?
您可以為此使用node-progress和Node的http客戶端(或requesT),而無需wget:
https://github.com/visionmedia/node-progress
例:
var ProgressBar = require('../')
, https = require('https');
var req = https.request({
host: 'download.github.com'
, port: 443
, path: '/visionmedia-node-jscoverage-0d4608a.zip'
});
req.on('response', function(res){
var len = parseInt(res.headers['content-length'], 10);
console.log();
var bar = new ProgressBar(' downloading [:bar] :percent :etas', {
complete: '='
, incomplete: ' '
, width: 20
, total: len
});
res.on('data', function(chunk){
bar.tick(chunk.length);
});
res.on('end', function(){
console.log('\n');
});
});
req.end();
更新:
由於您想在后台進程中執行此操作並偵聽下載進度(在單獨的進程中或您擁有什么),因此可以使用pub-sub功能來實現此目的,可以:
資源:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.