2012-10-23 78 views
4

我正在尋找從node.js應用程序調用Windows命令行的解決方案或NPM。node.js和命令行(cmd.exe)

我想要的是調用一些批處理文件,並使用node.js在機器上運行它們,當然還有參數並讀取它們的輸出。

+0

您是否在尋找http://nodejs.org/api/child_process.html? – skovalyov

+0

[This](https://github.com/IndigoUnited/node-cross-spawn)庫非常便於攜帶,可以實現您所需的功能。 – Midas

回答

8

爲此,您可以使用標準模塊child_process.spawn()

從文檔例如:

var spawn = require('child_process').spawn, 
    ls = spawn('ls', ['-lh', '/usr']); 

ls.stdout.on('data', function (data) { 
    console.log('stdout: ' + data); 
}); 

ls.stderr.on('data', function (data) { 
    console.log('stderr: ' + data); 
}); 

ls.on('exit', function (code) { 
    console.log('child process exited with code ' + code); 
}); 

更換'ls''c:/windows/system32/cmd.exe',並['-lh', '/usr']['/c', 'batfile.bat']運行批處理文件batfile.bat

+5

爲便於攜帶,最好用'process.env.comspec'替換''ls''。另外,如果在完成之前不需要處理批處理文件的輸出,'child_process.exec'可能比'spawn'更易於使用。 – ebohlman