Wie verwende ich START und Pipe zusammen?

Wie verwende ich START und Pipe zusammen?

Ursprünglich hatte ich einen Befehl wie diesen (unter Linux)

daemon flag & app flag

Unter Windows wird der BC-Daemon jedoch nie beendet, die App wird nie gestartet. Also habe ich stattdessen Folgendes geschrieben

start /B daemon flag & app flag

Das scheint zu funktionieren. Jetzt möchte ich es ausführen, daemon flag | app2 flagsaber alles, was ich starte, beschwert sich über nicht vorhandene Daemons und andere Probleme. Ich finde heraus, ob ich es einsetze daemon flag | app2 flagsund file.bates start /B file.batstattdessen das tut, was ich will. Aber das fühlt sich nach Hack an.

Wie kann ich es daemon flag | app2 flagsim Hintergrund und app flagsofort ausführen? Ist dieser Workaround für file.bat meine einzige Option?

Antwort1

Ich denke, das Folgende bewirkt, was Sie möchten:

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

Dadurch entsteht eine neue Inkarnation der Shell, die im Hintergrund läuft und die Pipe verwaltet, was implizit sowohl durch die Verwendung einer Batchdatei als auch durch den entsprechenden Linux-Befehl cmderfolgt .start

Es entsteht natürlich Verwirrung, wenn app2und appbeide eine Ausgabe erzeugen, und noch mehr Verwirrung entsteht, wenn beide eine Konsoleneingabe anfordern (das gilt für Linux und Windows gleichermaßen).

verwandte Informationen