node.js和命令行(cmd.exe)

Mic*_*ech 4 windows cmd node.js

我正在寻找解决方案或NPM从node.js应用程序调用Windows命令行.

我想要的是调用一些批处理文件并在具有node.js的机器上运行它们,当然还有参数并读取它们的输出.

Dee*_*tan 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);
});
Run Code Online (Sandbox Code Playgroud)

更换'ls''c:/windows/system32/cmd.exe',并['-lh', '/usr']['/c', 'batfile.bat']运行该批处理文件batfile.bat.

  • 为了便于携带,最好用`process.env.comspec`替换''ls'.此外,如果您不需要处理批处理文件的输出直到完成,那么`child_process.exec`可能比`spawn`更容易使用. (5认同)