我正在尝试打开' powershell.exe' shell使用proc_open。网页不断加载。但它适用于< cmd.exe'贝壳。我不明白它有什么不同。
这是我的代码
<?php
$descriptorspec = array(
0 => array("pipe", "r"), // stdin
1 => array("pipe", "w"), // stdout
2 => array("file", "error.txt", "a") // stderr
);
$process = proc_open("powershell.exe", $descriptorspec, $pipes);
if (is_resource($process)) {
fwrite($pipes[0], "hostname \n");
fclose($pipes[0]);
echo( '<pre>' );
echo stream_get_contents($pipes[1]);
echo( '</pre>' );
fclose($pipes[1]);
$return_value = proc_close($process);
echo "command returned $return_value\n";
}
?>
&#39; cmd.exe的工作输出&#39;,为什么它不能用于powershell.exe&#39;
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\wamp\bin\apache\Apache2.2.17>hostname
GOKPRAVE-WS01
C:\wamp\bin\apache\Apache2.2.17>
command returned 0
编辑1 观察任务管理器后,我了解powershell.exe在后台创建cmd.exe。有没有办法通过&#39; proc_open&#39;
来引用PHP中的子进程?