如何发送控件C node.js和child_processes

你好我想发送到child_process,例如,ping 8.8.8.8-t,也就是无限次的ping。 而一些迭代我想停止这个命令并执行一个新的,但在这种情况下,我不想杀死一个subprocess

例:

var spawn = require('child_process').spawn('cmd'), iconv = require('iconv-lite'); spawn.stdout.on('data', function (data) { console.log('Stdout: ', iconv.decode(data, 'cp866')); }); spawn.stderr.on('data', function (data) { console.log('Stderr: ', iconv.decode(data, 'cp866')); }); spawn.stdin.write('ping 8.8.8.8 -t'+ '\r\n'); spawn.stdin.write(here control-c...); // WRONG spawn.stdin.write('dir' + '\r\n'); 

Solutions Collecting From Web of "如何发送控件C node.js和child_processes"

我发现你以前的问题 。 看起来你正在尝试从node.js中创建/模拟一个终端。 您可以使用readline从终端读取和写入。

要编写控制字符,您可以从其文档中看到示例:

  rl.write('Delete me!'); // Simulate ctrl+u to delete the line written previously rl.write(null, {ctrl: true, name: 'u'}); 

要直接回答问题,要传递特殊字符,您需要传递它们的ASCII值。 Ctrl + C变成ASCII字符0x03。 取自这里的价值。

  spawn.stdin.write("\x03");