我在我的 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 exec($cmd)
函数将执行您的命令,就好像它直接放在服务器的终端中一样。这意味着你应该能够简单地拥有
exec('START C:\xampp\htdocs\myy\Filename.exe');
它应该可以工作。
如果它仍然不起作用,您可以随时创建一个批处理文件,其中包含对该应用程序的调用,例如
START C:\xampp\htdocs\myy\Filename.exe
在大多数 Windows 系统上,START
将代表打开默认命令提示符的新实例以运行命令,它也可以是可选的。
希望对你有帮助
关于php - 如何通过 PHP 在 Windows 服务器上执行 .exe 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38326575/