在PHP中,我使用proc_open在命令行运行命令。
它需要在新的CMD窗口中打开,所以我在命令的开头加上'start'。
但是,它还需要保持打开状态才能显示结果,但实际上它会自动关闭窗口。
我尝试添加'pause',并将/ 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);
答案 0 :(得分:1)
“start”将启动指定的命令然后退出。它基本上是异步的。你可能有更好的运气让你的proc_open启动一个运行批处理文件的cmd shell,并从.bat内部运行你的命令,之后你可以做一个'暂停'