一个 nodejs 问题有偿求助

2022-05-10 00:24:54 +08:00
 coloz

我使用 child_process.exec 调用了一个a.exe,但这个 exe 又调用了另一个b.exe
现在 stdout 中只能获取到a的输出,获取不了b的输出。
100 元,求一个解决办法。

1692 次点击
所在节点    程序员
7 条回复
CRVV
2022-05-10 00:32:31 +08:00
b.exe 的输出是由 a.exe 控制的。如果 a.exe 启动 b.exe 的时候让 b 继承自己的 stdout ,你就能获取到 b.exe 的输出了。

所以方法应该只有两个,一个是改 a.exe ,另一个是你自己调用 b.exe

相关的文档是 https://docs.microsoft.com/en-us/windows/win32/procthread/creating-a-child-process-with-redirected-input-and-output
musi
2022-05-10 07:04:03 +08:00
a.exe 可不可以设置日志之类的?如果可以则直接读日志文件
jifengg
2022-05-10 08:41:41 +08:00
如果你单独控制台调用 a 的时候发现它输出了 b 的内容,那有可能不是在 stdout ,有可能是输出到 stderr 了。
有些程序因为有可能用 stdout 输出关键信息(比如 ffmpeg 输出文件流),所以 log 之类的信息都统一输出到 stderr 了。
flowerpiggy
2022-05-10 12:06:37 +08:00
把 b.exe 的输出写到 .txt 文档里然后再 node 读取。
coloz
2022-05-10 19:21:29 +08:00
该问题,已解决,阅读了 b.exe 的源码,发现它不管成功与否都直接把输出到 stderr 了
superfatboy
2022-05-10 20:18:07 +08:00
然后 100 元呢?
coloz
2022-07-01 14:58:19 +08:00
@superfatboy 已经付给发现原因的人了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/851864

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX