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 flags
y file.bat
en start /B file.bat
cambio parece hacer lo que quiero. Pero eso parece una tontería.
¿Cómo ejecuto daemon flag | app2 flags
en segundo plano y app flag
de 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 cmd
shell, que se ejecuta en segundo plano y maneja la canalización, lo que se realiza implícitamente mediante el uso de start
un archivo por lotes y mediante el comando equivalente de Linux.
Por supuesto, habrá confusión si app2
ambos app
generan salida, y aún más confusión si ambos solicitan entrada de la consola (igualmente cierto para Linux y Windows).