命令行和 Node.js 通信(不关闭)
Posted
技术标签:
【中文标题】命令行和 Node.js 通信(不关闭)【英文标题】:command line and Node.js communication (without closing) 【发布时间】:2019-10-18 20:33:41 【问题描述】:我一直在查看documentation,但我找不到将命令传递到命令行 (cmd.exe) 而不在最后关闭它的方法。如何“连续”地与命令行通信?
我注意到了 fork 功能,但它似乎只适用于 node.js 模块..
const spawn = require('child_process');
const ls = spawn('C:\\Windows\\System32\\cmd', ['/c', 'echo hello']);
ls.stdout.on('data', (data) =>
console.log(`stdout: $data`);
);
ls.stderr.on('data', (data) =>
console.log(`stderr: $data`);
);
ls.on('close', (code) =>
console.log(`child process exited with code $code`);
);
结果:
stdout: hello
child process exited with code 0 // I dont want it to exit yet!
【问题讨论】:
【参考方案1】:最后还是很简单的。只需生成程序并写入其stdin
:
const spawn = require('child_process');
const child = spawn('C:\\Windows\\System32\\cmd.exe');
child.stdin.write('echo IM BACK\n');
child.stdout.on('data', (data) =>
console.log(`command line says:\n$data`);
);
产生:
c:\Users\...\03 cmd.exe communcation>
command line says:
echo IM BACK
IM BACK
也可以添加“回声关闭”
【讨论】:
以上是关于命令行和 Node.js 通信(不关闭)的主要内容,如果未能解决你的问题,请参考以下文章