如何在计划任务中运行 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 任务计划程序)的主要内容,如果未能解决你的问题,请参考以下文章

windows系统下怎样开启php的 php

如何解决 Windows 计划任务未运行的问题?

使用 PHP 和 Windows 任务计划程序在退出时重试(1)

想请问一下,如何把一个.php文件写成一个bat批处理文件添加到系统计划任务里面让它自动执行?

windows7设置定时任务运行ThinkPHP框架程序

如何安排不使用Windows任务计划程序运行bat文件?