Как использовать START и pipe вместе?

Как использовать START и pipe вместе?

Изначально у меня была такая команда (на Linux)

daemon flag & app flag

Однако на windows bc daemon никогда не заканчивается приложение никогда не запускается. Поэтому я написал это вместо этого

start /B daemon flag & app flag

Кажется, это работает. Теперь я хотел бы запустить daemon flag | app2 flags, но все, что я делаю, жалуется на отсутствие демона и другие проблемы. Я выясняю, если я ввожу его, daemon flag | app2 flagsи file.batвместо start /B file.batэтого он, кажется, делает то, что я хочу. Но это кажется хакерским.

Как мне запустить daemon flag | app2 flagsв фоновом режиме и app flagнемедленно? Этот файл .bat обходной путь мой единственный вариант?

решение1

Я думаю, что следующее сделает то, что вам нужно:

start /B %comspec% /c "daemon flag | app2 flags" & app flag

Это дает новое воплощение оболочки cmd, работающей в фоновом режиме и управляющей каналом, что выполняется неявно как с помощью startпакетного файла, так и с помощью эквивалентной команды Linux.

Конечно, возникнет путаница, если app2и appоба будут генерировать вывод, и еще большая путаница, если оба будут запрашивать ввод с консоли (это в равной степени относится и к Linux, и к Windows).

Связанный контент