在我的应用程序的完整标准输出:不能得到使用我用下面的代码的node.js
var path = app.getAppPath();
var spawn = require('child_process').spawn;
const child = exec(`"${path}\\PC-BASIC\\a.bat"`, []);
var stdout = '';
var stderr = '';
child.stdout.on('data', function(buf) {
//console.log('[STR] stdout "%s"', String(buf));
stdout += buf;
});
child.stderr.on('data', function(buf) {
//console.log('[STR] stderr "%s"', String(buf));
stderr += buf;
});
child.on('close', function(code) {
console.log('[END] code', code);
console.log('[END] stdout "%s"', stdout);
console.log('[END] stderr "%s"', stderr);
});
当我在命令行(DOS)a.bat运行
。我得到确切的结果。但是当我从我的电子应用程序运行它写入以下控制台上:
[END] code 0
[END] stdout "
D:\Documents\Nauman Umer\New folder\electron-quick-start>"C:\Program Files (x86)\PC-BASIC\pcbasic.com" --load="ART.BAS" --convert=A
"
[END] stderr ""
,但预期是:
[END] code 0
[END] stdout "
D:\Documents\Nauman Umer\New folder\electron-quick-start>"C:\Program Files (x86)\PC-BASIC\pcbasic.com" --load="ART.BAS" --convert=A
[FILE TEXT AS IN OUTPUT OF BAT]
"
[END] stderr ""
我也试图直接在命令行而不是从应用程序,但结果执行pcbasic
是一样的。
你确定程序打印到标准输出。并非Windows上的所有程序都打印到标准输出。有些人直接调用控制台API来打印输出。 – slebetman
它的一个python程序并使用'sys.stdout.write()'写入控制台。 –