我使用 child_process.exec 调用了一个a.exe
,但这个 exe 又调用了另一个b.exe
。
现在 stdout 中只能获取到a
的输出,获取不了b
的输出。
100 元,求一个解决办法。
1
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 |
2
musi 2022-05-10 07:04:03 +08:00
a.exe 可不可以设置日志之类的?如果可以则直接读日志文件
|
3
jifengg 2022-05-10 08:41:41 +08:00
如果你单独控制台调用 a 的时候发现它输出了 b 的内容,那有可能不是在 stdout ,有可能是输出到 stderr 了。
有些程序因为有可能用 stdout 输出关键信息(比如 ffmpeg 输出文件流),所以 log 之类的信息都统一输出到 stderr 了。 |
4
flowerpiggy 2022-05-10 12:06:37 +08:00
把 b.exe 的输出写到 .txt 文档里然后再 node 读取。
|
5
coloz OP 该问题,已解决,阅读了 b.exe 的源码,发现它不管成功与否都直接把输出到 stderr 了
|
6
superfatboy 2022-05-10 20:18:07 +08:00
然后 100 元呢?
|
7
coloz OP @superfatboy 已经付给发现原因的人了
|