start
ya debería ser la dirección correcta. Sin embargo, lo /b
adjunta a la misma consola. Ahora el problema es que cuando se cierra una ventana de consola, también se cerrará cualquier proceso asociado con esta consola.
Puede usar start
sin /b
, luego se ejecutará en una nueva consola. Sin embargo, si desea ejecutarlo en segundo plano sin una ventana de consola, necesitará usar un VBScript o una herramienta de terceros: ejecute un archivo por lotes de una manera completamente oculta
Sin embargo, en ese caso ya no vería la salida stdout / stderr. Sin embargo, puede redirigirlo a un archivo envolviéndolo en una cmd /c your_command > stdout.txt 2> stderr.txt
llamada y comenzando este a través de uno de los métodos antes mencionados (VBScript, herramienta de terceros, ...).
Alternativamente, también puede ocultar su propia ventana de consola antes de salir. Acabo de escribir un pequeño programa de una línea que hace exactamente eso (el código fuente es básicamente ShowWindow(GetConsoleWindow(), SW_HIDE)
): http://share.cherrytree.at/showfile-24286/hide_current_console.exe
De esta manera, puede usar start /b
, y cuando quiera "cerrar" su consola (técnicamente ocultarla), ejecutará hide_current_console & exit
lo que ocultará la consola y luego cerrará el proceso cmd.exe (no el proceso de Python), en una línea, ya que no puedes escribir exit
después de que la consola ya estaba oculta.
hide_current_console
viene? No funciona en una PC W10.