win7计划任务执行php脚本方法

日常程序中,不少需要用定时执行php脚本,php自带ignore_user_abort函数,在一定程度上可以实现这个功能,但效率太低,最好的方法还是用服务器自带的计划任务功能。

win7计划任务执行php脚本方法网上有不少教程,但绝大部分是错误的,这里说下正确的具体操作方法。

例如,我想让 G:\ecms_7.2_UTF\e\dongpo\sitemap\auto.php 文件能定时执行,自动生成sitemap文件,需要按如下方法执行:

1、编写bat文件

用计划任务执行php脚本常见的有两种方法,一种是用php执行,另一种是用浏览器explorer执行。php执行时不能加参数,但效率较高,explorer执行更加灵活。

在电脑上任意位置新建一个文本,名字是 auto.txt

(1)php执行方法时,在文本里输入内容:

"H:\AppServ\php5\php.exe" -f "G:\ecms_7.2_UTF\e\dongpo\sitemap\auto.php"

以上内容中,红色部分是php.exe文件路径,蓝色部分是脚本路径。

(2)explorer执行方法时,在文本里输入内容:

explorer "http://网址/e/dongpo/sitemap/auto.php?tabname=news"

蓝色部分是脚本的完整网址。此时,auto.php文件尾部最好加入如下代码,作用时在执行后自动关闭刚才打开的浏览器:

<script>
closewin();
function closewin(){
	var browserName=navigator.appName;
	if(browserName=="Netscape"){
		var opened=window.open('about:blank','_self');
		opened.opener=null;
		opened.close();
	}else if(browserName=="Microsoft Internet Explorer"){
		window.opener=null;
		window.open('','_self');
		window.close();
	}
}
</script>

保存好之后,将此文件后缀改为.bat。我的bat文件的路径是 G:\ecms_7.2_UTF\e\dongpo\sitemap\auto.bat

2、新建计划任务

(1)控制面板 》 管理工具 》 任务计划程序,打开计划任务界面,在“计划任务程序库”上点击右键,选择“创建任务”。

(2)“常规”界面,填上名称,如“sitemap”。

win7计划任务执行php脚本方法

(3)“触发器”界面,点击新建,新建一个触发器,触发器界面设置如图。我这里设置的是1分钟运行一次,永远执行下去。

win7计划任务执行php脚本方法

新建好触发器后如图:

win7计划任务执行php脚本方法

(4)“操作”界面,点击新建,新建一个操作,界面如图,选择“启动服务”,“程序或脚本”里填上刚才新建的bat文件的路径。“起始于”文本框里要填bat文件所在的目录,如果不填的话,是不会执行bat文件的。

win7计划任务执行php脚本方法

新建好操作后界面如图

win7计划任务执行php脚本方法

至此新建完毕,点击“保存”即可。最后界面如图:

win7计划任务执行php脚本方法

想要停止计划任务,只需在此任务上点击右键,选择“禁用”。