我遇到了问题,我需要实时从控制台输出中读取。我有一个文件,我需要执行,尝试做这样的事情test.exe > text.txt
但是当我尝试读取exe文件运行时,我无法看到任何东西,直到exe完成并在同一时间写入所有行。我需要使用node.js
答案 0 :(得分:2)
您应该可以使用child_process.spawn()
开始此过程,并从stdout
/ stderr
个流中读取:
var spawn = require('child_process').spawn;
var proc = spawn('test.exe');
proc.stdout.on('data', function(data) {
process.stdout.write(data);
});
proc.stderr.on('data', function(data) {
process.stderr.write(data);
});
proc.on('close', function(code, signal) {
console.log('test.exe closed');
});
答案 1 :(得分:0)
test.exe
可能会缓冲它的输出。
您可以尝试使用spawn或使用pseudo tty
运行它const spawn = require('child_process').spawn;
const type = spawn('type.exe');
type.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
type.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});
type.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});