我需要每天午夜在我的服务器上运行一个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‘。请确保键入的名称正确,然后重试。
我错过了什么?
发布于 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
发布于 2013-08-28 21:26:29
实际上,您甚至不需要批处理文件。您可以从任务调度程序运行php-script。
只需让任务调度程序运行php.exe并将php-file的位置设置为任务的参数即可。
发布于 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文件夹。
https://stackoverflow.com/questions/18488946
复制相似问题