¿Cómo utilizar START y pipe juntos?

¿Cómo utilizar START y pipe juntos?

Originalmente tenía un comando como este (en Linux)

daemon flag & app flag

Sin embargo, en Windows bc daemon nunca termina, la aplicación nunca se inicia. Entonces escribí esto en su lugar

start /B daemon flag & app flag

Esto parece funcionar. Ahora me gustaría ejecutarlo daemon flag | app2 flags, pero todo lo que hago se queja de que el demonio no existe y otros problemas. Me doy cuenta si lo introduzco daemon flag | app2 flagsy file.baten start /B file.batcambio parece hacer lo que quiero. Pero eso parece una tontería.

¿Cómo ejecuto daemon flag | app2 flagsen segundo plano y app flagde forma inmediata? ¿Es esa solución file.bat mi única opción?

Respuesta1

Creo que lo siguiente hace lo que quieres:

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

Esto proporciona una nueva encarnación del cmdshell, que se ejecuta en segundo plano y maneja la canalización, lo que se realiza implícitamente mediante el uso de startun archivo por lotes y mediante el comando equivalente de Linux.

Por supuesto, habrá confusión si app2ambos appgeneran salida, y aún más confusión si ambos solicitan entrada de la consola (igualmente cierto para Linux y Windows).

información relacionada