管道两个stdout到stdin的基本原理

时间:2011-01-17 01:07:43

标签: windows pipe stdout cat md5sum

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

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

我被告知我

  

无法多次写入stdout

类似的unix示例可能是:

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

做我想要的(原则上)。

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

output.exe提供的输出可以被someapp.exe附加和理解,就好了。有没有办法让两个output.exe一次输出到stdout一个?

1 个答案:

答案 0 :(得分: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中,它们将同时运行,输出将是混乱的。