如何在PHP中运行.cmd文件并显示结果
我需要在php脚本中运行一个.cmd批处理文件 PHP将通过浏览器中经过身份验证的会话进行访问 当我从服务器桌面运行.cmd文件时,它会将一些输出输出到cmd.exe 我想将此输出路由回php页面如何在PHP中运行.cmd文件并显示结果,php,batch-file,cmd,windows-server-2003,Php,Batch File,Cmd,Windows Server 2003,我需要在php脚本中运行一个.cmd批处理文件 PHP将通过浏览器中经过身份验证的会话进行访问 当我从服务器桌面运行.cmd文件时,它会将一些输出输出到cmd.exe 我想将此输出路由回php页面 这可行吗?是的,可行。你可以用 exec("mycommand.cmd", &$outputArray); 并打印阵列的内容: echo implode("\n", $outputArray); 您可以使用或启动命令并将输出作为字符串 如果要将参数传递给该命令,则应设想在调用该命令之前使用
这可行吗?是的,可行。你可以用
exec("mycommand.cmd", &$outputArray);
并打印阵列的内容:
echo implode("\n", $outputArray);
您可以使用或启动命令并将输出作为字符串
如果要将参数传递给该命令,则应设想在调用该命令之前使用转义参数;您也可以看看^^使用php popen()函数我更喜欢用于此类任务。特别是对于长时间运行的命令,因为您可以逐行获取输出并将其发送到浏览器,所以超时的可能性较小。下面是一个例子:
$p = popen('script.cmd', 'r');
if ($p)
{
while (!feof($p))
echo gets($p); // get output line-by-line
pclose($p);
}
[再次添加注释,因为链接被屏蔽]不会在backticks中包含.cmd文件。是否这样做,就像这里的.bat文件示例?像这样的?我现在手边没有PHP,所以无法测试,抱歉@hamlin11-什么不起作用(“打印
ls
;”)?我刚刚测试了它(不过是在linux机器上),它对我来说运行得很好。试试看:只是好奇,cmd文件做什么?运行7zip并做一些文件管理的事情
$p = popen('script.cmd', 'r');
if ($p)
{
while (!feof($p))
echo gets($p); // get output line-by-line
pclose($p);
}