Обеспечение proc_open будет поддерживать окно командной строки в PHP - PullRequest
1 голос
/ 01 сентября 2010

В PHP я использую proc_open для запуска команды в командной строке.

Она должна открываться в новом окне CMD, поэтому я добавила «start» к началу команды.

Тем не менее, он также должен оставаться открытым для отображения результатов, но на самом деле он автоматически закрывает окно после этого.

Я попытался добавить «пауза», а также параметр / k, чтобы «остаться».Но ни одна из них не работает.Окно просто закрывается.

Как сделать так, чтобы окно оставалось открытым при использовании proc_open?

Это часть кода, $ cmd заполнен ранее:

$descriptorspec = array(
  1 => array('pipe', 'w'), // stdout
  2 => array('pipe', 'w'), // stderr
);

$process = proc_open($cmd, $descriptorspec, $pipes);
if (!is_resource($process))
{
  throw new RuntimeException('Unable to execute the command.');
}

stream_set_blocking($pipes[1], false);
stream_set_blocking($pipes[2], false);

1 Ответ

1 голос
/ 01 сентября 2010

«start» запустит указанную команду и затем выйдет. Это в основном асинхронный. Возможно, вам повезет больше, если ваш proc_open запустит командную оболочку cmd, которая запускает командный файл, и запустит вашу команду из .bat, после чего вы можете сделать «паузу»

...