1

在 PHP 中,我使用 proc_open 在命令行运行命令。

它需要在新的 CMD 窗口中打开,所以我在命令的开头添加了“开始”。

但是,它也需要保持打开状态才能显示结果,但实际上它会在之后自动关闭窗口。

我尝试添加“暂停”以及“保留”的 /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);
4

1 回答 1

1

“开始”将启动指定的命令然后退出。它基本上是异步的。让您的 proc_open 启动一个运行批处理文件的 cmd shell,然后从 .bat 内部运行您的命令,您可能会更幸运,之后您可以执行“暂停”

于 2010-09-01T14:27:12.113 回答