我需要在php脚本中运行.cmd批处理文件。
将通过浏览器中经过身份验证的会话访问PHP。
当我从服务器的桌面运行.cmd文件时,它会向cmd.exe吐出一些输出。
我想将此输出路由回php页面。
这可行吗?
答案 0 :(得分:4)
是的,这是可行的。你可以使用
exec("mycommand.cmd", &$outputArray);
并打印数组的内容:
echo implode("\n", $outputArray);
答案 1 :(得分:2)
$result = `whatever.cmd`;
print $result; // Prints the result of running "whatever.cmd"
答案 2 :(得分:2)
我更喜欢使用popen来完成这类任务。特别是对于长时间运行的命令,因为您可以逐行获取输出并将其发送到浏览器,因此超时的可能性较小。这是一个例子:
$p = popen('script.cmd', 'r');
if ($p)
{
while (!feof($p))
echo gets($p); // get output line-by-line
pclose($p);
}
答案 3 :(得分:1)
您可以使用shell_exec
或backticks operator来启动命令并将输出作为字符串。
如果要将参数传递给该命令,您应该设想在调用命令之前使用escapeshellargs来转义它们;你也可以看一下escapeshellcmd ^^
答案 4 :(得分:1)
使用php popen()函数