En Linux puedes hacer esto:
$ php blah.php> some.log &
correr blah.php
en segundo plano. Esto es lo mismo que Ctrl+ zentonces el bg
comando.
¿Hay un equivalente de uno / ambos para el símbolo del sistema de Windows?
En Linux puedes hacer esto:
$ php blah.php> some.log &
correr blah.php
en segundo plano. Esto es lo mismo que Ctrl+ zentonces el bg
comando.
¿Hay un equivalente de uno / ambos para el símbolo del sistema de Windows?
Respuestas:
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 start
delante 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 /B
interruptor, 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 start
usando start /?
.
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 MyFile
con el archivo que desea ejecutar en segundo plano.
start
comando. Crea una cosa intermedia que ejecuta el comando del usuario, y luego usa el start
comando para iniciar la cosa intermedia. Entonces es una máquina Rube Goldberg . ¿Cómo es esto mejor que la otra respuesta, que sugiere usar start
directamente? (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.Run
línea del script?