如何在nodejs中的spawn发送CONTROL + C.

时间:2013-05-02 06:49:07

标签: windows node.js cmd

我运行CMD来生成,但如果你发给我一个ping命令,我就无法摆脱它,我怎样才能发送控制台控件+ c,以避免这种情况?谢谢!

var fs = require('fs');
var iconv = require('iconv-lite');
function sendData (msg) {
    console.log('write msg ', msg);
    cmd.stdin.write(msg + "\r\n");
}
function execCommand() {
    console.log('start command line')
    var s = { 
        e : 'exec_command',
        d : {
          data : {}
        }
    };
    cmd = require('child_process').spawn('cmd', ['/K']);

    cmd.stdout.on('data', function (data) {
        console.log(iconv.decode(data, 'cp866'));
    });

}

execCommand();
sendData('ping e1.ru -t');
sendData( EXIT ??? )

????? 我想通过node.js创建一个控制台,一个成熟的控制台。

sendData('dir');
sendData('cd /d Windows');
sendData('ping 8.8.8.8 -t');
senData( CONTROL + C );
senData('dir')

1 个答案:

答案 0 :(得分:2)

您需要明确调用:

cmd.kill();

那就行了。如果您需要等效CTRL-C,请致电:

cmd.kill('SIGINT');

有关详细信息,请参阅child_process.kill文档。