Command Prompt: run scripts in background (equivalent of Linux's &/bg)
In Linux you can do this:
$ php blah.php > some.log &
to run blah.php
in the background. This is the same as Ctrl+z then the bg
command.
Is there an equivalent of either/both for the Windows Command Prompt?
Windows does have a similar functionality to Linux's &
, to launch processes such that they don't take over your console. Instead of a command-line flag, though, it's a command prefix.
Simply run your command with start
in front of it, as such:
C:\> start myprog.exe
It also works with commands, not just executables:
C:\> start dir
This will start a new console window and run the command inside it.
If you don't want to have a new console window come up when running the command, use the /B
switch, like this:
C:\> start /B myprog.exe
There are several other options you can specify to configure how to run the command. You can figure them out by reading the help for start
by using start /?
.
This can run a file in the background from the command prompt or a batch file
@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
Now replace MyFile
with the file you wish to run in the background.