无法使用setx PATH和php -S命令通过HTA在Win上启动PHP

时间:2019-01-19 01:09:34

标签: php cmd path hta

我已经创建了HTA文件以在Windows上安装和启动PHP。如果已经有使用某些版本的PHP的my_app_folder/php文件夹,则通过HTA文件,我们只有1)设置Win PATH变量以及PHP文件夹的路径,2)转到{{1 }} /my_app_folder和3)在哪里运行index.php CMD命令。

这是我测试的HTA文件的代码:

php -S

如果打开此HTA文件,则说明<script> var objUserInfo = new ActiveXObject('WScript.network'); var pathToUserFolder = 'C:\\Users\\'+objUserInfo.UserName+'\\'; var WShell = new ActiveXObject('WScript.Shell'); WShell.Run('cmd /c setx PATH '+pathToUserFolder+'my_app_folder\\php',0,true); WShell.CurrentDirectory = pathToUserFolder+'my_app_folder'; WShell.Run('cmd /c php -S localhost:80',0,false); setTimeout(function() { WShell.Run('chrome -url http://localhost:80', 0, false); }, 17000); </script> 变量已成功添加,但是PATH进程未运行。但是,如果php.exe变量已经存在并且我打开了文件,则PATH进程正在运行。

ps。我注意到,在运行php.exe命令之后,PHP服务器至少已准备就绪17秒钟,因此您可以看到,在打开浏览器并使用php -S地址之前,我使用setTimeout()。 / p>

1 个答案:

答案 0 :(得分:0)

好吧,如果我们对PATH变量有一些疑问,那么在CMD命令中使用指向php.exe的完整路径就足够了:

WShell.Run('cmd /c C:\\my_app_folder\\php\\php.exe -S localhost:80',0,false);