22

В Linux вы можете сделать это:

$ php blah.php> some.log &

запустить blah.php в фоновом режиме. Это то же самое, что Ctrl+z, то команда bg .

Существует ли эквивалент одного или обоих для командной строки Windows?

2 ответа2

40

Windows действительно имеет функциональность, аналогичную Linux & , для запуска процессов таким образом, чтобы они не захватывали вашу консоль. Вместо флага командной строки, однако, это префикс команды.

Просто запустите вашу команду с start перед ней, например:C:\> start myprog.exe

Он также работает с командами, а не только с исполняемыми файлами:C:\> start dir

Это запустит новое окно консоли и запустит команду внутри него.

Если вы не хотите, чтобы при запуске команды появлялось новое окно консоли, используйте ключ /B , например:C:\> start /B myprog.exe

Есть несколько других параметров, которые вы можете указать, чтобы настроить способ запуска команды. Вы можете понять их, прочитав справку для start , используя start /? ,

1

Это может запустить файл в фоновом режиме из командной строки или командного файла

@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

Теперь замените MyFile файлом, который вы хотите запустить в фоновом режиме.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .