从 PHP 脚本执行批处理文件 (.bat)


Execute a Batch File (.bat) from a PHP script

我有一个php代码可以从加密狗发送短信。它只是接受两个参数;一个电话号码和一条消息,并将其传递到.bat文件。

$phoneNo = +1234567890;
$SMSMesseage = "your message";
$SMSMsg = "'"$SMSMesseage'"";
exec("sendsms.bat $phoneNo $SMSMsg");

我正在使用 Gammu 工具通过加密狗配置和发送短信。所以.bat文件包含以下代码'

echo on
::
echo
::
cd C:'<installation_path>'Gammu 1.33.0'bin
set phnNo=%1
set msg=%2
gammu -c smsdrc
gammu -c smsdrc --sendsms TEXT %phnNo% -text %msg%

所以,我的问题是,当我通过网络浏览器访问sendSmsPhp.php时,它会毫无问题地发送短信。但是当我尝试将其作为 Windows 任务计划程序时,它不起作用。

我尝试使用以下命令直接通过命令提示符执行 php 脚本;

c:'<path_to_xampp>'xampp'php'php.exe -f c:'<path_to_xampp>'xampp'htdocs'LIMS_15'sendSmsPhp.php

但它回来了;

'sendsms.bat' is not recognized as an internal or external command, operable program or batch file.

有什么办法可以做到这一点吗?

您需要告诉cmd运行批处理文件

exec("cmd sendsms.bat $phoneNo $SMSMsg");