2011-01-17 2 views
1

Я немного зелёный, когда дело доходит до трубопроводов. То, что я пытаюсь сделать (на ПК с Windows, но я предполагаю, что это так же, как для UNIX) заключается в следующем:Основы трубопровода 2 stdout для stdin

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

Я сказал, что я

не может писать на стандартный вывод несколько раз

аналогичный пример Unix может быть:

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

, который делает то, что я хочу (в principl е).

Из-за внешнего вида это приложение «output.exe», которое дает предупреждение (если выполняется без | someapp.exe -, выход остается). Либо это просто неудача, либо я пропускаю какую-то основную часть трубопровода, которую я не понимаю.

вывод, который output.exe дает, может быть добавлен и понят как-то someapp.exe просто отлично. Есть ли способ получить два вывода output.exe для вывода stdout по одному?

+0

Это должно сработать. например try (список задач и список задач) | Сортировать. Нет никаких проб. – John

ответ

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

ПРИМЕЧАНИЕ: То, что & похоже в окнах, похоже, работает как; в unix. Это означает, что команды выполняются последовательно. Если вы использовали & в unix, все они будут запускаться одновременно, и выход будет запутан.