Изначально у меня была такая команда (на 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).