如何从PHP中运行.cmd文件并显示结果

时间:2009-07-18 02:36:06

标签: php batch-file cmd windows-server-2003

我需要在php脚本中运行.cmd批处理文件。

将通过浏览器中经过身份验证的会话访问PHP。

当我从服务器的桌面运行.cmd文件时,它会向cmd.exe吐出一些输出。

我想将此输出路由回php页面。

这可行吗?

5 个答案:

答案 0 :(得分:4)

是的,这是可行的。你可以使用

exec("mycommand.cmd", &$outputArray);

并打印数组的内容:

echo implode("\n", $outputArray);

look here for more info

答案 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_execbackticks operator来启动命令并将输出作为字符串。

如果要将参数传递给该命令,您应该设想在调用命令之前使用escapeshellargs来转义它们;你也可以看一下escapeshellcmd ^^

答案 4 :(得分:1)

使用php popen()函数