如何在计划任务中运行 PHP 文件(Windows 任务计划程序)
Posted
技术标签:
【中文标题】如何在计划任务中运行 PHP 文件(Windows 任务计划程序)【英文标题】:How to run a PHP file in a scheduled task (Windows Task Scheduler) 【发布时间】:2010-09-22 15:54:36 【问题描述】:如何创建计划任务来运行 php 文件? 是的,我把定时任务里的东西都填好了,还是不行。
运行:“C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\WEB\4w_website\save.php”
开始于:“C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\WEB\4w_website”
它只是在记事本中打开 PHP 文件。
我提供了正确的用户名和密码。
请帮帮我..
【问题讨论】:
【参考方案1】:运行命令应该是
C:\Path\to\php.exe -f "C:\Path\to\file.php"来自php.exe的命令行帮助:
-f 解析并执行【讨论】:
-f
不是可选的吗?
我不这么认为,但我没有用最近的 PHP 版本测试过。【参考方案2】:
我刚刚写了一个.bat
文件来完成这项工作file.bat
@ECHO OFF
php.exe -f "C:\code\cust.php"
并像这样把它放在计划任务中:
运行:C:\code\file.bat
开始于:C:\code\
【讨论】:
谢谢,这很有帮助。请注意,php.exe
的路径应该已满。
如果我的定时任务运行时间为5分钟,那么以这种方式输入的5个任务运行需要多长时间?会不会超过 5 分钟或 25 分钟。即等到完成?
@Mikeys4u,让我们知道您尝试后得到的答案是什么。
@Pacerier 如果您在每个 bat 命令的开头使用 START 一词,这将使任务在不同的进程(线程)中运行。因此,上面的答案是不使用 START 将需要 25 分钟,因为每个都一个接一个地运行,或者如果你使用 START 那么它应该是 5 分钟....
@Mikeys4u,你在哪个系统上试过?【参考方案3】:
如果您运行 php 脚本,在大多数情况下,脚本等待在当前文件夹中运行。 这意味着您必须为每个操作设置文件夹,使用字段“Start In”。
例子:
Run: C:\php\php.exe
Arguments: -f C:\web\myscript.php
不要忘记:
Start in: C:\web\
【讨论】:
【参考方案4】:听起来您没有与 EXE 关联的 PHP 文件。
您可以这样做我的电脑 > 工具 > 文件夹选项 > 文件类型。如果不出意外,这也可以帮助您验证您的设置。
否则,您可以在任务中指定“C:\path\to\php.exe [file]”。
【讨论】:
【参考方案5】:这就是我所做的:
PHP 文件
<?php my code goes here ?>
*请注意,如果您在 CLI 中使用 HTTP API/CURL,请使用 dl("php_curl.dll");
这会将 curl 加载到 cli 中
现在我将PHP添加到windows路径变量中,这可以从我的电脑、属性、高级设置、环境变量、新建
接下来我创建了一个 .bat 文件,只需打开记事本并在下面输入代码并保存为 myfile.bat
@ECHO OFF
php -f d:\wamp\www\V3\task.php
This site 可能会帮助您了解 .bat 文件的语法。
现在在windows上新建一个定时任务,调用上面的.bat文件作为源,
【讨论】:
【参考方案6】:对于那些无法使@Tomalak 的答案起作用的人:
检查您的目录中是否有空格 ()。如果是,则需要用
"
括起来。
"C:\Path\to php file\php.exe" -f "C:\Path\to php file\file.php"
如果它仍然不起作用,请检查您的 file.php
中是否包含包含文件。
include("file2.php"); /* OR */
include_once("file2.php");
删除它。如果您的file.php
中的包含文件确实需要,请尝试将代码/脚本从该包含文件移动到您的主文件。
【讨论】:
我试过这样,但它对我不起作用。我创建了一个 bat 文件和一个 php 文件。 php 文件包含两个 php 文件。没有什么能解决我的问题 @Karthi - 将这两个文件中的代码移动到您的主文件中。不幸的是,使用此方法无法读取包含的文件【参考方案7】:我认为,您必须通过 URL 执行您的 PHP 脚本。 您可以为执行 URL 编写批处理脚本。 为什么不使用其他语言编写后端脚本,例如批处理脚本、vbscript 等。
【讨论】:
为什么不用 PHP 编写后端脚本?以上是关于如何在计划任务中运行 PHP 文件(Windows 任务计划程序)的主要内容,如果未能解决你的问题,请参考以下文章
使用 PHP 和 Windows 任务计划程序在退出时重试(1)