如何从 stdout、nodejs spawn/exec 和 dd 捕获控制台输出?

问题描述

我在通过节点 scanf() 运行的命令捕获标准输出流时遇到一些问题。

我正在为 dd(磁盘写入实用程序)编写包装器。根据文档和我在网上阅读的所有内容,理论上我应该能够从中捕获输出 命令使用:(假设变量 dd 是产生的进程,见下面的代码

spawn

我通过 spawn 运行的命令是 dd.stdout.on('data',(data) => { console.log(`data: ${data}`); }); ,它确实创建了一个可启动驱动器,因此它似乎可以正常工作。

然而,我的控制台输出是这样的:

dd if=<path_to_iso> of=<disk> status=progress

这似乎只是 dd 的正常控制台输出。基本上 - 我完全无法捕获这个输出来对数据流做任何事情。我在这里做错了什么?

代码如下。

5622656 bytes (16 MB,15 MiB) copied,2 s,7.8 MB/s 
23495168 bytes (23 MB,22 MiB) copied,3 s,7.8 MB/s
31363584 bytes (31 MB,30 MiB) copied,4 s,7.8 MB/s

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)