使用exec()启动myFile.bat不起作用,但可通过命令行运行

时间:2019-03-18 14:47:10

标签: php batch-file vbscript exec

我正在开发一个Web界面,该界面将负责更改多个Excel文件中的颜色。

为此,我尝试运行一个.bat脚本以启动一个.vbs脚本。 我完成所有服务器端的工作(在Intranet计算机上,因此可以完全访问),我用wamp(Apache 2.4.37和PHP 7.2.14)进行了配置。

问题是php页面无法执行脚本,并且无法无限循环地运行浏览器。 我的脚本行:

exec ('launch_vbs.bat');

我尝试过:

  • 具有system()和passthru(),没有变化。

  • 总的来说,没有变化。

  • 在我的launch_vbs.bat文件中将chmod指定为777,无需更改

  • 最后添加2>和1,无变化。

  • 在服务器上的命令行中启动我的文件launch_vbs.bat,一切都正确完成,它修改了我的excel文件的颜色

  • 在服务器的命令提示符下启动包含exec()的php页面,该exec()正确完成,并且颜色在Excel中进行了修改

我的.bat和.vbs文件(甚至是.php)都位于wamp服务器文件夹(C:/ wamp64 / www / MyProject /)的同一目录中

简而言之,我握住了一点,但我不知道该怎么办... 如果有人有想法,那就太好了!

提前谢谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试给出与在cmd中给出的命令完全相同的命令,

exec('start launch_vbs.bat');

或使用系统:

  system('cmd /c launch_vbs.bat');

请注意,cmd是在Windows的system32内部运行的cmd。这意味着,如果将cmd替换为“ C:\ Windows \ System32 \ cmd.exe”,则它也将正常运行。 Source!!!

编辑:

您的bat文件应触发vbs脚本的执行。所以它应该类似于:

@echo off 
start C:\wamp64\www\ODR\change_color.vbs
相关问题