本帖最后由 bailong360 于 2015-3-21 23:29 编辑
这个是一个系统开机计划任务。开机会运行的。
第一次创建一个文本作为时间标记,可以计算这个文本的创建时间(不知道这个保险不保险),业可以直接把当前的时间写入到这个标记文件中。
每次启动的时候运行一次批处理,拿当前的时间和这个标记文件的时间做比较,如果是30天以后就运行one后面的命令,60天也运行noe后面的命令,90天也运行one后面的命令,120天就运行two第二个命令了,后面还是每隔30天运行一次第二个命令,直到第330天后不再运行命令,删除计划任务。- @Echo Off
- Del LastRun.tim
- If Not Exist LastRun.tim (
- For /F "Delims=-/ Tokens=1,2,3" %%i In ("%Date: =-%") Do >LastRun.tim Echo;%%i %%j %%k
- )
- For /F "Delims=-/ Tokens=1,2,3" %%i In ("%Date: =-%") Do Call :DateToDays %%i %%j %%k Now
- Set /P LastRun=<LastRun.tim
- Call :DateToDays %LastRun% LastRun
- Set /A Judge=Now-LastRun
- If %Judge% GEQ 120 (
- 2>nul Set /A "1/(Judge%30)"&&Goto one||Goto two
- ) Else If %Judge% LSS 120 (
- Goto one
- ) Else If %Judge% EQU 330 At ID /Delete
- Pause
- :DateToDays
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :DateToDays %yy% %mm% %dd% days
- ::
- :: 作者:Ritchie Lawrence, 2002-09-26. 版本 1.0
- ::
- :: 功能:返回从 1970 年 1 月 1 日到给定的日期之间所经过的天数。
- :: 适用于 NT4/2000/XP/2003.
- ::
- :: 参数:%1 待转换的年,两位或者四位(传值调用)
- :: %2 待转换的月,可以以零开头(传值调用)
- :: %3 待转换的日,可以以零开头(传值调用)
- :: %4 该变量用于接收所经过的天数(引用调用)
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- setlocal ENABLEEXTENSIONS
- set yy=%1&set mm=%2&set dd=%3
- if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
- set /a dd=100%dd%%%100,mm=100%mm%%%100
- set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
- set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
- endlocal&set %4=%j%&goto :EOF
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
复制代码 符合要求否? |