我正在尋找從node.js應用程序調用Windows命令行的解決方案或NPM。node.js和命令行(cmd.exe)
我想要的是調用一些批處理文件,並使用node.js在機器上運行它們,當然還有參數並讀取它們的輸出。
我正在尋找從node.js應用程序調用Windows命令行的解決方案或NPM。node.js和命令行(cmd.exe)
我想要的是調用一些批處理文件,並使用node.js在機器上運行它們,當然還有參數並讀取它們的輸出。
爲此,您可以使用標準模塊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
。
爲便於攜帶,最好用'process.env.comspec'替換''ls''。另外,如果在完成之前不需要處理批處理文件的輸出,'child_process.exec'可能比'spawn'更易於使用。 – ebohlman
您是否在尋找http://nodejs.org/api/child_process.html? – skovalyov
[This](https://github.com/IndigoUnited/node-cross-spawn)庫非常便於攜帶,可以實現您所需的功能。 – Midas