1

说到管道,我有点绿。我正在尝试做的(在 Windows PC 上,但我猜它与 UNIX 相同)是这样的:

(output.exe "second part" & output.exe "first part") | someapp.exe -

我被告知我

无法多次写入标准输出

类似的 unix 示例可能是:

(echo -n part2 & echo -n part1) | md5

它做我想要的(原则上)。

从它的外观来看,发出警告的是“output.exe”应用程序(如果在没有 | someapp.exe 的情况下运行 - 输出仍然存在)。要么这只是运气不好,要么我错过了一些我不明白的管道的关键基础。

output.exe 给出的输出可以由 someapp.exe 附加和理解。有没有办法让两个 output.exe 一次输出到 stdout?

4

1 回答 1

0

奇怪,看起来它在windows7上对我有用。我编写了几个测试程序,一切都如你所愿

C:\tmp>( output.exe part1 & output.exe part2 ) | input.exe
LINE[0]: ARG[0]: output.exe
LINE[1]: ARG[1]: part1
LINE[2]: ARG[0]: output.exe
LINE[3]: ARG[1]: part2

所以也许问题实际上出在你的 output.exe 或 someapp.exe 程序中?我在 Win7 和 WinXP 上都测试过我的程序在这里: http: //min.us/mvphIUz

注意:windows 中的 & 看起来像 ; 在 unix 中。那是界定顺序运行的命令。如果您在 unix 中使用 &,它们将同时运行并且输出会混乱。

于 2011-04-09T05:04:39.590 回答