【问题标题】:How to execute .exe file on a windows server via PHP?如何通过 PHP 在 Windows 服务器上执行 .exe 文件?
【发布时间】:2016-11-14 13:25:40
【问题描述】:

我在我的 windows vps 上安装了 php,可以通过端口 80 和我的家用 PC 访问。

创建了一个 auto.php 文件,该文件应触发文件名 Filename.exe

这是我写的代码(从网上偷来的并在上面工作)

<?php
exec('c:\WINDOWS\system32\cmd.exe /c START C:\xampp\htdocs\myy\Filename.exe');
    echo "Game server has been started";
?>

但是当我点击 auto.php 时,它并没有执行,但是我可以看到在任务管理器中打开了一个新的命令提示符,但是 Filename.exe 没有执行。

但是,如果我使用以下命令创建一个名为 test.bat 的 bat 文件

copy NUL test.txt

并将脚本的结尾部分更改为 test.bat 而不是 Filename.exe

<?php
exec('c:\WINDOWS\system32\cmd.exe /c START C:\xampp\htdocs\myy\test.bat');
    echo "Game server has been started";
?>

它确实创建了一个名为 test.txt 的文件,但是如果我将命令更改为

开始文件名.exe

它仍然没有启动,我不确定我在这里做错了什么。

请帮忙。

我的最终目标是能够启动 filename.exe(与 auto.php 位于同一文件夹中)以从浏览器远程运行..

【问题讨论】:

标签: php windows batch-file


【解决方案1】:

php exec($cmd) 函数将执行您的命令,就好像它直接放在服务器上的终端中一样。这意味着您应该能够简单地拥有

exec('START C:\xampp\htdocs\myy\Filename.exe');

它应该可以工作。

如果它仍然不起作用,您可以随时创建一个批处理文件,其中包含对该应用程序的调用,例如

START C:\xampp\htdocs\myy\Filename.exe

在大多数 Windows 系统上,START 表示打开默认命令提示符的新实例以运行命令,它也可以是可选的。

希望对你有帮助

【讨论】:

  • 如果我从 cmd 运行你给的命令,即START C:\xampp\htdocs\myy\Filename.exe,它工作正常,但如果我把它放在批处理文件中,然后使用 php 在 PHP 中使用这个命令启动 bat 文件exec('START C:\xampp\htdocs\myy\test.bat'); 它不会运行,但是如果我在批处理中保留copy NUL test.txt 之类的命令,那么它会运行,但 .exe 不会运行:(
  • 您是否看到一个窗口弹出然后立即消失?
  • 不 :( 没有那样的,甚至没有在任务管理器中启动。
【解决方案2】:

这就是我在我的要求中的工作方式

exec('sample.bat',$rt); bat文件是 @echo off START AfterFX.exe -r E:\work\MovieMaker.jsx pause

这里在start之后,调用.exe文件,将文件转入软件运行。它对我有用。

【讨论】:

    最近更新 更多