Me gustaría ejecutar una aplicación en particular (llamémosla foo
) desde la línea de comando, pero no quiero que detenga el terminal, coloque basura en el terminal desde su salida o flujos de error, y también quiero que mantenga funcionando incluso si cierro dicha terminal. En Bash, puedo hacerlo usando (foo &>/dev/null &)
, pero no sé cómo lo haría en el shell de Windows. ¿Alguien podría ayudarme por favor?
Respuesta1
La forma en que harías esto en Windows es:
start /B foo > NUL 2>&1
El start
comando iniciará un proceso independiente, un efecto similar a &
. La /B
opción impide start
abrir una nueva ventana de terminal si el programa que está ejecutando es una aplicación de consola (no es necesario para aplicaciones GUI). Tiene >
el mismo significado que en Linux y NUL
es el equivalente de Windows a /dev/null
. el 2>&1
en elfinredirigirá stderr a stdout, que irá a NUL
.
Respuesta2
No existe un equivalente directo.
Como se describeaquí, llamar a un programa de una manera que no bloquee a la persona que llama se puede hacer con el start
comando, usando la /b
opción. Sin embargo, no sé acerca de la redirección de salida en este caso. Es posible que tengas que envolverlo en un archivo por lotes.
En cuanto a > /dev/null
, es fácil: >NUL
. NUL
es un nombre de dispositivo DOS. Sin embargo, el operador taquigráfico no está disponible. Tendrás que seguir el camino manual con 2>&1
.AquíHay más información sobre eso.