В Linux вы можете сделать это:
$ php blah.php> some.log &
бежать blah.phpв фоновом режиме. Это то же самое, что и команда Ctrl+ .zbg
Существует ли эквивалент одного или обоих для командной строки Windows?
В Linux вы можете сделать это:
$ php blah.php> some.log &
бежать blah.phpв фоновом режиме. Это то же самое, что и команда Ctrl+ .zbg
Существует ли эквивалент одного или обоих для командной строки Windows?
Ответы:
Windows действительно имеет функциональность, аналогичную Linux &, чтобы запускать процессы, чтобы они не захватывали вашу консоль. Вместо флага командной строки, однако, это префикс команды.
Просто запустите вашу команду с startперед ней, как таковой:
C:\> start myprog.exe
Он также работает с командами, а не только с исполняемыми файлами:
C:\> start dir
Это запустит новое окно консоли и запустит команду внутри него.
Если вы не хотите, чтобы при запуске команды появлялось новое окно консоли, используйте /Bпереключатель, например так:
C:\> start /B myprog.exe
Есть несколько других параметров, которые вы можете указать, чтобы настроить способ запуска команды. Вы можете понять их, прочитав справку startпо использованию start /?.
Это может запустить файл в фоновом режиме из командной строки или командного файла
@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файл, который вы хотите запустить в фоновом режиме.
startкоманду. Он создает промежуточную вещь, которая запускает команду пользователя, а затем использует startкоманду для запуска промежуточной вещи. Так что это машина Рубе Голдберга . Чем это лучше, чем другой ответ, который предлагает использовать startнапрямую? (3) Вопрос показывает перенаправление ввода / вывода ( > some.log). Как пользователь будет перенаправлять ввод-вывод с этим ответом? Поместить это в командную строку или встроить в WshShell.Runстроку в скрипте?