2015-04-03 188 views
0

我正在尝试添加一个跟踪某些统计信息的脚本,并且每隔24小时将这封电子邮件发送给Windows任务计划程序。如何将参数传递到bat文件中的php脚本

我这样做的方式是使用bat文件。

脚本每分钟运行一次,但仅在添加email=true时发送电子邮件。

在过去我曾经通过XAMPP的URL运行这个命令:http://localhost/path/here/script.php?email=true

我试图做从Windows任务调度同样的事情,但我对如何添加这个参数没有任何线索。

我的bat文件包含:

@ECHO OFF 
C:\xampp\php\php.exe -f "C:\xampp\htdocs\path\here\script.php?email=true" 

但是,这似乎并没有这样的伎俩。

在此先感谢任何能够帮助并澄清如何正确完成此操作的人。

+0

回答:http://stackoverflow.com/a/9612273/4726998 – 2015-04-03 16:30:48

+1

我不认为这是上述的重复,对不起,但我去了那10倍,但它没有意味着我需要让这个工作。 – Snowlav 2015-04-03 16:32:28

+0

是的,我编辑我的评论它不是重复的,但你的答案在这里。 :) – 2015-04-03 16:33:26

回答

3

CLI参数的工作方式不同。您可以为

C:\xampp\php\php.exe -f "C:\xampp\htdocs\path\here\script.php" -- email=true 

通知第一--,它从参数php.exe参数分离到脚本运行它。

但这还不够,因为参数现在存储在数组中。所以你可以检查它为$sendEmail = in_array('email=true', $argv);

或者(您需要更多选项),您可以使用诸如getopt之类的东西。

如果你需要它在$_GET也可以看看这个SO answer

+0

嘿,谢谢你的回复,这是否意味着'script.php'需要编辑,如果我使用' - email = true'? – Snowlav 2015-04-03 16:43:32

+0

是的,您需要编辑'script.php'来正确检索参数,或者我提到的方式,或者在链接的答案中。 – 2015-04-03 16:44:43

+0

好的,在script.php中有一行:if(isset($ _ GET ['email'])&& strtolower($ _ GET ['email'])==“true”) {很多代码}'我不太了解SO回答:( – Snowlav 2015-04-03 16:48:26

相关问题