Node.js - 带有 spawn 的子进程:无法从子进程流式传输数据
Node.js - child process with spawn: can't stream data from child
我想在 windows 上生成一个子进程以打开终端 (cmd.exe)。我让一切正常,除了我无法将数据从子进程流式传输到父进程。我想访问父进程中终端的输出。这是我的代码:
var spawn = require('child_process').spawn;
var child = spawn('cmd', [ '/c', 'start'], {
cwd: '{path-to-folder}'
});
child.stdout.on('data', function (data) {
console.log(data);
});
child.stderr.on('data', function (data) {
console.log(data);
});
child.on('close', function () {
console.log('close');
})
我真的被困住了所以任何帮助或小费都会很棒!!提前致谢!
那是因为您要在新的终端会话中开始新的 shell。您只能拦截来自 运行 相同终端会话的命令的输出。
例如,如果您将 start
更改为 dir
,您将得到输出:
var child = spawn('cmd', [ '/c', 'dir'], {
cwd: '.'
});
child.stdout.on('data', function (data) {
console.log(data.toString());
});
驱动器 C 中的卷没有标签。
卷序列号是 9401-94AE
Directory of C:\Temp
12/02/2015 01:29 PM <DIR> .
12/02/2015 01:29 PM <DIR> ..
12/02/2015 01:30 PM 403 test.js
4 File(s) 10,423,442 bytes
4 Dir(s) 12,869,840,896 bytes free
close
我想在 windows 上生成一个子进程以打开终端 (cmd.exe)。我让一切正常,除了我无法将数据从子进程流式传输到父进程。我想访问父进程中终端的输出。这是我的代码:
var spawn = require('child_process').spawn;
var child = spawn('cmd', [ '/c', 'start'], {
cwd: '{path-to-folder}'
});
child.stdout.on('data', function (data) {
console.log(data);
});
child.stderr.on('data', function (data) {
console.log(data);
});
child.on('close', function () {
console.log('close');
})
我真的被困住了所以任何帮助或小费都会很棒!!提前致谢!
那是因为您要在新的终端会话中开始新的 shell。您只能拦截来自 运行 相同终端会话的命令的输出。
例如,如果您将 start
更改为 dir
,您将得到输出:
var child = spawn('cmd', [ '/c', 'dir'], {
cwd: '.'
});
child.stdout.on('data', function (data) {
console.log(data.toString());
});
驱动器 C 中的卷没有标签。 卷序列号是 9401-94AE
Directory of C:\Temp
12/02/2015 01:29 PM <DIR> .
12/02/2015 01:29 PM <DIR> ..
12/02/2015 01:30 PM 403 test.js
4 File(s) 10,423,442 bytes
4 Dir(s) 12,869,840,896 bytes free
close