日常程序中,不少需要用定时执行php脚本,php自带ignore_user_abort函数,在一定程度上可以实现这个功能,但效率太低,最好的方法还是用服务器自带的计划任务功能。
win7计划任务执行php脚本方法网上有不少教程,但绝大部分是错误的,这里说下正确的具体操作方法。
例如,我想让 G:/ecms_7.2_UTF/e/dongpo/sitemap/auto.php 文件能定时执行,自动生成sitemap文件,需要按如下方法执行:
用计划任务执行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
(1)控制面板 》 管理工具 》 任务计划程序,打开计划任务界面,在“计划任务程序库”上点击右键,选择“创建任务”。
(2)“常规”界面,填上名称,如“sitemap”。
(3)“触发器”界面,点击新建,新建一个触发器,触发器界面设置如图。我这里设置的是1分钟运行一次,永远执行下去。
新建好触发器后如图:
(4)“操作”界面,点击新建,新建一个操作,界面如图,选择“启动服务”,“程序或脚本”里填上刚才新建的bat文件的路径。“起始于”文本框里要填bat文件所在的目录,如果不填的话,是不会执行bat文件的。
新建好操作后界面如图
至此新建完毕,点击“保存”即可。最后界面如图:
想要停止计划任务,只需在此任务上点击右键,选择“禁用”。
新闻热点
疑难解答