【发布时间】:2012-10-13 11:30:32
【问题描述】:
我正在寻找从 node.js 应用程序调用 Windows 命令行的解决方案或 NPM。
我想要的是调用一些批处理文件并在带有 node.js 的机器上运行它们,当然还有参数并读取它们的输出。
【问题讨论】:
-
This 库非常便携,可以满足您的需求。
我正在寻找从 node.js 应用程序调用 Windows 命令行的解决方案或 NPM。
我想要的是调用一些批处理文件并在带有 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。
【讨论】:
'ls'换成process.env.comspec。此外,如果您在批处理文件的输出完成之前不需要处理它,child_process.exec 可能比spawn 更易于使用。