【问题标题】:How to run batch file using php?如何使用php运行批处理文件?
【发布时间】:2018-10-03 03:51:33
【问题描述】:

如何在 wamp 服务器中执行批处理文件?在 Xampp 服务器上我得到正确的结果,但在 wamp 服务器上,得到空结果..

$gotIt = array();
$file111 = "C:/ABC/run.bat";
//echo $file; exit;
$kkk =  exec( $file111, $gotIt );
//echo $kkk;
$usr = implode("",$gotIt);
echo '<pre>'; print_r($usr);exit;

【问题讨论】:

  • 可能内容在复制粘贴中丢失了,但$usr = implode("",$gotIt); 应该做什么?另请注意,运行您的网络服务器的用户与您的用户不同,因此权限也可能非常不同。
  • 在 xampp 服务器上,我得到了正确结果的完整路径,并且 $usr = implode("",$gotIt) 给出了用户名..

标签: php batch-file xampp wamp


【解决方案1】:

你试过了吗?

system("cmd /C X:[PATH_TO_BAT_FILE]", &$output);

where参数

/C = 执行字符串指定的命令然后终止

&$output = 返回值

你的情况

$gotIt = array();
$file111 = "C:/ABC/run.bat";

/** CMD cant return directly Array, but Text */
$CMDOutput = "";
system("cmd /C \"$file111\"", $CMDOutput);
 
/** Split output as you want (With Token, with preg_match, ...) */
$gotIt = mySplitFunction($CMDOutput);

/** 
 * EX. with explode where first param is a token (delimiter)
 *
 * If $CMDOutput contains "Pietro, terracciano", with this
 * instruction you obtain 
 *     $gotIt = array(
 *         'Pietro', 'Terracciano'
 *     );
 */
$gotIt = explode(',', $CMDOutput);

/** ... */

【讨论】:

  • 你的最新答案给我错误....echo '
    '; print_r($CMDOutput);出口;给我 127 号码...
  • $gotIt = array(); $file111 = "C:/abc/run.bat"; //回显$文件;出口; $CMD输出 = ""; system("cmd /C \"$file111\"", $CMDOutput); $gotIt = splitfunction($CMDOutput);回声'
    '; print_r($CMDOutput);退出;
  • 分割函数不存在!!您必须使用 preg_match(..) 或 str_split(..) 或 explode(..) 。取决于你想如何从输出字符串中获取数据数组
  • @RoshanSankhe 完美 =)
猜你喜欢
  • 1970-01-01
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 2017-10-10
  • 1970-01-01
相关资源
最近更新 更多