
- 帖子
- 76
- 积分
- 115
- 技术
- 0
- 捐助
- 0
- 注册时间
- 2010-12-18
|
100元有偿求个定时重复运行程序的批处理
配置.ini文件如下:
[配置]
//[]里为时间段,=后分别为该时间段需执行程序次数区间。
[00-01] = 7-10
[01-02] = 5-10
[02-03] = 5-10
[03-04] = 5-9
[04-05] = 5-9
[05-06] = 4-8
[06-07] = 4-8
[07-08] = 6-10
[08-09] = 6-10
[09-10] = 8-12
[10-11] = 8-12
[11-12] = 8-12
[12-13] = 8-12
[13-14] = 8-13
[14-15] = 8-13
[15-16] = 8-14
[16-17] = 8-14
[17-18] = 9-14
[18-19] = 10-15
[19-20] = 12-15
[20-21] = 13-16
[21-22] = 13-16
[22-23] = 12-15
[23-24] = 10-15
需要重复的运行程序test.exe
举例如下:
比如在时间段20点到21之间要从配置文件里面随机获取13-16之间的某个数值,比如获取到的数值为14,那个test.exe在这个时间段就需要运行14次。
程序test.exe执行自身到程序运行完毕大概需要1分半到2分半左右自动结束,该时间不是固定的。
test.exe需用start /wait test.exe执行。但是程序test.exe执行的时候偶尔会卡住,所以在start /wait之前必须进行倒计时,倒计时150秒,如果程序进程还在则需用taskkill强制结束该进程。
另外程序需要在这个时间段大致均匀的的执行,也就是比如这次的一个小时本次执行该程序14次,那么大概首次程序开始执行的时间到下次程序开始执行的时间大概为3600/14=257,这个只是大致时间间隔,不需要非常精确,但是不能够执行该程序14次,你半个小时就执行完毕了,下个半个小时啥事都不做了。
也就是在获得该时间段需要执行多少次之后,test.exe运行到程序本身运行结束(或者是被taskkill结束的)必须等待多少秒之后才开始下次执行test.exe
这个等待多少秒大致是要根据该时段需要运行多少次决定的,同上比如该时间段需执行14次,程序本身执行大概1分半-2分半左右也就是90-150秒之间,两次程序执行的时间间隔为257秒,那个这个随机等到的时间就应该是(257-90)-(257-150)也就是107-167秒之间。
比如现在时间为下午15-16之间,批处理要求回显如下:
今天是 2016-03-09
[00-01]共执行程序8次。
[01-02]共执行程序9次。
[02-03]共执行程序7次。
[03-04]共执行程序5次。
[04-05]共执行程序6次。
[05-06]共执行程序8次。
[06-07]共执行程序7次。
[07-08]共执行程序8次。
[08-09]共执行程序9次。
[09-10]共执行程序10次。
[10-11]共执行程序8次。
[11-12]共执行程序9次。
[12-13]共执行程序10次。
[13-14]共执行程序10次。
[14-15]共执行程序9次。
[15-16]共需执行程序10次。程序正在执行,已经执行3次,剩余7次。
每天0点需要把上面的每个时间段共执行多少次的内容写入到test.log文件里,方便查看。
可能写的不是详细,如果有疑问,请跟帖,请高手帮帮忙,谢了。
补充下,程序执行环境为:WinXP 32Bit 和Win7 64Bit |
|