我已经为这件事绞尽脑汁好几个小时了,但还是没有任何进展。
现在我已经把我的问题归结为一个简单的(也许?)任务,即试图让一个PHP脚本在本地主机上运行一个.bat程序。我在用WAMP。
这是我当前的PHP文件:
<?php system('cmd /c C:'Users'user'Desktop'open.bat'); ?>
这就是它的全部内容。我的.bat文件在桌面上,包含:
notepad.exe C:'Users'user'Desktop'test.txt
然后我在桌面上有一个简单的文本文件test.txt。我可以从命令行运行.bat文件,它工作得很好,但在PHP中没有。
这里有许多其他的线程询问如何从PHP运行。bat文件(例如:如何从PHP运行。bat文件?),我已经尝试了几乎所有我在网上读到的技术,没有任何工作。
Ex, I've try
exec('open.bat')
(与。bat在同一目录下),shell_exec()
,改变周围的文件位置,路径,我真的不知道是怎么回事。我没有在安全模式下运行PHP。
也许有一些配置,我应该知道,将允许它运行?或者我可能错过了一些明显的痛苦…
这是可能的,你没有看到记事本运行,因为它是一个交互式程序和web服务器(这是试图启动它)运行在一个不同的用户会话比一个你在。在这种情况下,从命令行(例如使用php -f
)执行相同的操作也可以。
您可以尝试使用start /b C:'Users'user'Desktop'open.bat
代替cmd
你可能还需要转义斜杠,像''
而不是'
所以,我建议你试试:
<?php system('start /b C:''Users''user''Desktop''open.bat'); ?>
试试这个....
<?php
$cmd = C:'Users'user'Desktop'open.bat;
function execInBackground($cmd) {
if (substr(php_uname(), 0, 7) == "Windows"){
pclose(popen("start /B ". $cmd, "r"));
}
else {
exec($cmd . " > /dev/null &");
}
}
execInBackground($cmd);
?>
更多信息请参考:http://php.net/manual/en/function.exec.php