我正在尝试添加一个脚本,该脚本跟踪某些统计信息,并每24小时向windows任务调度程序发送一封电子邮件。
我这样做的方法是使用bat文件。
脚本每分钟运行一次,但仅在我添加email=true
时发送一封电子邮件。
在过去,我经常通过examplep运行这个程序,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"
但这似乎并没有奏效。
提前感谢任何能够提供帮助并澄清如何正确完成这项工作的人。
CLI参数的工作方式不同。您可以将其作为运行
C:'xampp'php'php.exe -f "C:'xampp'htdocs'path'here'script.php" -- email=true
注意第一个--
,它将php.exe
参数从脚本的参数中分离出来。
但这还不够,因为参数现在存储在$argv
数组中。所以您可以将其检查为$sendEmail = in_array('email=true', $argv);
。
或者(您需要更多的选项),您可以使用getopt之类的东西。
如果你需要它在$_GET
中,也可以查看这个SO答案。
要将参数从批处理文件传递到php文件,您需要首先将参数添加到script.php
<?php
$argument1 = $argv[1];
$argument2 = $argv[2];
?>
现在在批处理文件中它更简单的
@echo off
path/to/script.php arg1 arg2
您也可以通过浏览器调用args,但代码已被修改这里的代码(只是一个例子)
<?php
$argument1 = $_GET["arg1"];
$argument2 = $_GET["arg2"];
?>
@echo off
start http:///localhost/url/to/script.php?arg1=argument%201&arg2=argument%202
rem "%20" is a blank space