23

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?

  • 1
    I don't believe there is, but you can launch as many command prompts as you need. What are you trying to accomplish? – uSlackr Aug 27 '12 at 17:37
  • I'm using > to log to a file, and I don't want to prompt to just sit out there. I may want to continue working on the same prompt window w/ the same directory. – DOOManiac Aug 27 '12 at 17:39
  • What version of windows? – EBGreen Aug 27 '12 at 17:43
  • Windows 7 (64-bit) – DOOManiac Aug 27 '12 at 20:18
41

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 /?.

1

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.

  • 2
    (1) Can you explain how this works (just a little)? (2) Fundamentally, this uses the start command.  It creates an intermediate thing that runs the user’s command, and then uses the start command to start the intermediate thing. So it’s a Rube Goldberg machine. How is this any better than the other answer, which suggests using start directly? (3) The question shows I/O redirection (> some.log). How would the user do I/O redirection with this answer? Put it on the command line, or build it into the WshShell.Run line in the script? – Scott Oct 4 '17 at 23:45
  • Do not respond in comments; edit your answer to make it clearer and more complete. – Scott Oct 4 '17 at 23:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.