Símbolo del sistema: ejecutar scripts en segundo plano (equivalente a Linux y / bg)

23

En Linux puedes hacer esto:

$ php blah.php> some.log &

correr blah.phpen segundo plano. Esto es lo mismo que Ctrl+ zentonces el bgcomando.

¿Hay un equivalente de uno / ambos para el símbolo del sistema de Windows?

DOOManiac
fuente
1
No creo que exista, pero puede iniciar todas las indicaciones de comando que necesite. ¿Qué está tratando de lograr?
uSlackr
Estoy usando> para iniciar sesión en un archivo, y no quiero pedirle que simplemente me quede ahí sentado. Es posible que desee continuar trabajando en la misma ventana de solicitud con el mismo directorio.
DOOManiac
¿Qué versión de windows?
EBGreen
Windows 7 (64 bits)
DOOManiac

Respuestas:

41

Windows tiene una funcionalidad similar a la de Linux &, para iniciar procesos de modo que no se hagan cargo de su consola. Sin embargo, en lugar de una bandera de línea de comandos, es un prefijo de comando.

Simplemente ejecute su comando startdelante de él, como tal: C:\> start myprog.exe

También funciona con comandos, no solo ejecutables: C:\> start dir

Esto iniciará una nueva ventana de consola y ejecutará el comando dentro de ella.

Si no desea que aparezca una nueva ventana de consola al ejecutar el comando, use el /Binterruptor, de esta manera: C:\> start /B myprog.exe

Hay varias otras opciones que puede especificar para configurar cómo ejecutar el comando. Puede resolverlos leyendo la ayuda startusando start /?.

Ben Richards
fuente
1

Esto puede ejecutar un archivo en segundo plano desde el símbolo del sistema o un archivo por lotes

@Echo off
Echo Set WshShell = CreateObject("WScript.Shell")   >>%temp%\ghost.vbs
Echo WshShell.Run chr(34) ^& "MyFile" ^& Chr(34), 0 >>%temp%\ghost.vbs
Echo Set WshShell = Nothing                         >>%temp%\ghost.vbs
start %temp%\ghost.vbs
timeout /t 1 >nul
del %temp%\ghost.vbs

Ahora reemplace MyFilecon el archivo que desea ejecutar en segundo plano.

Antonio
fuente
2
(1) ¿Puedes explicar cómo funciona esto (solo un poco)? (2) Fundamentalmente, esto usa el startcomando. Crea una cosa intermedia que ejecuta el comando del usuario, y luego usa el startcomando para iniciar la cosa intermedia. Entonces es una máquina Rube Goldberg . ¿Cómo es esto mejor que la otra respuesta, que sugiere usar startdirectamente? (3) La pregunta muestra la redirección de E / S ( > some.log). ¿Cómo haría el usuario la redirección de E / S con esta respuesta? ¿Ponerlo en la línea de comando o construirlo en la WshShell.Runlínea del script?
Scott
No responda en comentarios; edite su respuesta para que sea más clara y completa.
Scott,