Node.js - 带有spawn的子进程:无法从子进程传输数据

时间:2015-12-02 11:19:07

标签: node.js child-process spawn

我想在Windows上生成子进程以打开终端(cmd.exe)。我得到了一切,除了我无法将数据从子进程流式传输到父进程。我想在父进程中访问终端的输出。这是我的代码:

SELECT "(All)" 
FROM [SynergyReport 2] 
UNION 
SELECT [SynergyReport 2].ObjectID 
FROM [SynergyReport 2] 
ORDER BY [SynergyReport 2].[ObjectID];

我真的被困了所以任何帮助或者tipp都会很棒!!提前谢谢!

1 个答案:

答案 0 :(得分:1)

那是因为你在新的终端会话中开始新的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