首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用.bat文件运行php脚本

使用.bat文件运行php脚本
EN

Stack Overflow用户
提问于 2013-08-28 21:11:43
回答 5查看 46.8K关注 0票数 9

我需要每天午夜在我的服务器上运行一个php脚本。在linux系统上,我设置了cron作业,但我被windows系统卡住了。

我知道我必须使用windows任务调度程序来设置一个任务,并且该任务将需要运行一个.bat文件,而该文件将运行php文件,但是我在尝试编写.bat文件时遇到了困难。

我目前拥有的是:

@echo off
REM this command runs the nightly cron job
start "C:\Program Files (x86)\PHP\v5.3\php.exe" -f C:\inetpub\wwwroot\sitename\crons\reminder-email.php

但是,当我尝试手动运行.bat文件来测试它时,我得到了一个windows警告

"Windows找不到'-f‘。请确保键入的名称正确,然后重试。

我错过了什么?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-08-28 21:21:07

START命令可选地接受所创建窗口的标题作为其第一个参数;在本例中,它认为C:\Program Files (x86)\PHP\v5.3\php.exe是要显示的标题,而-f (第二个参数)是要运行的可执行文件。

因此,您可以通过提供占位符标题来解决此问题,例如

start "email reminder task" "C:\Program Files (x86)\PHP\v5.3\php.exe" -f C:\inetpub\wwwroot\sitename\crons\reminder-email.php

或者,最好是完全放弃START命令(不使用它的任何独特功能),直接运行PHP:

"C:\Program Files (x86)\PHP\v5.3\php.exe" -f C:\inetpub\wwwroot\sitename\crons\reminder-email.php
票数 9
EN

Stack Overflow用户

发布于 2013-08-28 21:26:29

实际上,您甚至不需要批处理文件。您可以从任务调度程序运行php-script。

只需让任务调度程序运行php.exe并将php-file的位置设置为任务的参数即可。

票数 6
EN

Stack Overflow用户

发布于 2013-08-28 21:21:24

我能建议您做点小改动吗?

echo off
REM This adds the folder containing php.exe to the path
PATH=%PATH%;C:\Program Files (x86)\PHP\v5.3

REM Change Directory to the folder containing your script
CD C:\inetpub\wwwroot\sitename\crons

REM Execute
php reminder-email.php

PS。将Apache、MySQL或PHP放在Program Files中不是一个好主意。不要使用名称中有空格的windows文件夹。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18488946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档