| ==========ETIME======== @echo off
 color 1f
 echo.
 echo                  定时计划工具 VER:1.0
 echo                   by:风弛网络,jastyg
 echo               Email:support@efengchi.com
 echo                 [url]HTTP://WWW.EFENGCHI.COM[/url]
 echo                     for xp/2k3
 echo.
 echo.
 
 rem ++++++++++++++++++++外部命令行模式的处理+++++++++++++++++++++++++++
 
 rem ===================检测外部是否输入为空后者是帮助信息============
 if "%1!%"=="!" goto guihelp                  :如果外部为空,则使用图形页面
 if "%1%"=="/?" goto help                     :外部输入/?则出现DOS的帮助提示
 if "%1%"=="/h" goto help                     :同上,输入/h
 if "%1%"=="/H" goto help                     :同上,分别给出了大小写。
 for %%i in (0,1,2,3,4,5,6,7,8,9,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31) do if "%1"=="%%i" goto kaishi
 goto warng2
 rem====================开始对外部输入进行设置和检验==================
 :kaishi
 if "%1"=="0" set d=0&set riqi=0& goto t      :初始如果日期为0
 set /a tmp=%date:~8,3%+0 >nul                :判断日期是否为8号或者9号,以接下文(解决8,9的无效字符方法)
 cls                                          :清屏
 if errorlevel 9167 goto tmp1                 :接上文接受是否为8号或者9号
 goto tmp2
 
 rem====================对8,9号的日期进行确定========================
 :tmp1
 echo %date:~8,2% >tem.txt                    :导出当前的日期到临时文件
 find "08" tem.txt  >nul                      :从临时文件寻找是否含有数值08,以接下文
 if not errorlevel 1 set riqi=8&goto tmp3     :判断如果含有08,则设置riqi变量为8,跳转到TMP3标签
 find "09" tem.txt  >nul                      :从临时文件寻找是否含有数值09,以接下文
 if not errorlevel 1 set riqi=9&goto tmp3     :判断如果含有09,则设置riqi变量为9,跳转到TMP3标签
 
 rem====================对外部日期不为0,8,9的情况下的处理===============
 :tmp2
 set /a riqi=%date:~8,2%+0                    :对日期进行十位为空去0处理
 :tmp3
 set /a d=%1+0                                :对用户输入的日期十位为空去0处理
 
 rem===================对外部时间,用户命令进行处理=================================
 :t
 if exist tem.txt del tem.txt                 :对日期设置完成所留下的临时文件的清理
 set t=%2                                     :定义变量T为用户输入的时间
 for %%i in
 (0,1,2,3,4,5,6,7,8,9,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,
 17,18,19,20,21,22,23,) do if "%t:~0,2%"=="%%i" goto CRC
 goto warng2
 :CRC
 if "%t:~2,1%"==":" goto CRC1
 goto warng2
 :crc1
 for %%i in
 (0,1,2,3,4,5,6,7,8,9,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,
 17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,
 40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,) do if
 "%t:~3,2%"=="%%i" goto bcmd
 goto warng2
 
 :bcmd
 set cmd=%~3                                   :定义运行的程序为用户输入
 if "%~3!"=="!" goto command                  :如果用户不输入,则跳到默认设置给的值,到COMMAND
 goto 4
 
 :command
 set cmd=c:\windows\风弛备份.bat              :设置默认运行命令
 
 rem===================设置外部循环选项命令==========================================
 :4
 if "%4!%"=="!" goto 41                      :判断是否为空并相对跳转
 if "%4%"=="n" goto 41                       :判断是否为小写n并相对跳转
 if "%4%"=="N" goto 41                       :是否为大写N并相对跳转
 if "%4%"=="y" goto 42                       :是否为小写y并相对跳转
 if "%4%"=="Y" goto 42                       :是否为大写Y并相对跳转
 
 rem===================设置默认及不循环==============================================
 :41
 set rem=echo.                               :定义变量为echo.
 goto start                                  :跳转到日期时间的检验部分
 
 :42
 set rem=goto start                          :定义变量为goto 语句,实现循环
 set yanchi=ping -n 60 127.1^>nul            :为防止时间在指定时间内多次运行,设置了延迟1分钟
 goto start                                  :跳转到日期时间的检验部分
 echo.
 
 rem ++++++++++++++++++++图形化的设置和配置处理++++++++++++++++++++++++++++++++++++++++
 rem===================图形化帮助提示================================================
 :guihelp
 echo 请等待......
 ping -n 1 ping 127.1 >nul
 cls
 echo  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 echo  +用法1:直接运行此文件,跟向导走。需要帮助请输入?或者h                        +
 echo  +日期格式:例如9号,可以输入9或者09                                            +
 echo  +时间格式采用24小时制,即:20:50 (精度到分钟)                                  +
 echo  +用法2:命令行模式;                                                          +
 echo  +语法:etime 日 时间 命令(最好写完整路径) Y/N(是否循环运行,默认为N)        +
 echo  +例:etime 7 20:20 notepad.exe (7日,20:20运行 NOTEPAD这个程序,并且不循环) +
 echo  +例:etime 0 20:20 notepad.exe Y (20:20运行 NOTEPAD这个程序,并且循环)      +
 echo  +DOS下输入 etime /? 或者 etime /h 得到帮助                                    +
 echo  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 rem===================对用户输入日期进行检测和定义==================================
 :begin
 echo  请输入日期
 set d1=enter                                     :定义一个值给D1,用来下文的用户输入为空的检测
 set /p d1=                                       :用户自定义输入
 if "%d1%"=="?" goto guihelp                      :图形帮助的调用
 if "%d1%"=="h" goto guihelp                      :同上
 if "%d1%"=="H" goto guihelp                      :同上
 if "%d1%"=="enter" goto warng                    :检测用户输入是否为空,并进行相对处理
 if "%d1%"=="0" set d=0&set riqi=0& goto shij     :检测用户输入是否为0,并相对定义
 for %%i in(0,1,2,3,4,5,6,7,8,9,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,
 17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,?,h,H,) do if "%
 d1%"=="%%i" goto 89
 goto warng
 :89
 set /a tmp=%date:~8,3%+0 >nul                    :判断日期是否为8号或者9号,以接下文(解决8,9的无效字符方法)
 cls
 if errorlevel 9167 goto tem1                     :接上文接受是否为8号或者9号,并相关跳转
 goto tem2
 
 rem====================对8,9号的日期进行确定,同上TMP1========================
 :tem1
 echo %date:~8,2% >tem.txt
 find "08" tem.txt  >nul
 if not errorlevel 1 set riqi=8&goto tem3
 find "09" tem.txt  >nul
 if not errorlevel 1 set riqi=9&goto tem3
 
 rem====================对日期不为0,8,9的情况下的处理,同上TMP2===============
 :tem2
 set /a riqi=%date:~8,2%+0
 
 :tem3
 set /a d=%d1%+0
 
 rem===================对时间,用户命令进行处理=================================
 :shij
 if exist tem.txt del tem.txt                      :对日期设置完成所留下的临时文件的清理
 cls
 echo  请输入时间
 set t=enter                                       :定义一个值给T,用来下文的用户输入为空的检测
 set /p t=                                         :用户自定义输入
 if "%t%"=="?" goto guihelp                        :图形帮助的调用
 if "%t%"=="h" goto guihelp                        :同上
 if "%t%"=="H" goto guihelp                        :同上
 if "%t%"=="enter" goto warng1                     :检测用户输入是否为空,并进行相对处理
 for %%i in
 (0,1,2,3,4,5,6,7,8,9,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,
 17,18,19,20,21,22,23,?,h,H) do if "%t:~0,2%"=="%%i" goto TCRC
 goto warng1
 :TCRC
 if "%t:~2,1%"==":" goto TCRC1
 goto warng1
 :tcrc1
 for %%i in
 (0,1,2,3,4,5,6,7,8,9,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,
 17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,
 40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,) do if
 "%t:~3,2%"=="%%i" goto cmd
 goto warng1
 
 rem==================对用户命令的处理===========================================
 :cmd
 echo 请输入要执行文件的路径和文件名
 set cmd=enter
 set /p cmd=
 if "%cmd%"=="?" goto guihelp
 if "%cmd%"=="h" goto guihelp
 if "%cmd%"=="H" goto guihelp
 if "%cmd%"=="enter" goto command1
 goto xunhuan
 
 :command1
 set cmd=c:\windows\风弛备份.bat
 
 rem==================定义是否循环================================================
 :xunhuan
 echo 是否要循环运行? Y/N
 set rem=enter
 set /p rem=
 if "%rem%"=="y" goto 14
 if "%rem%"=="Y" goto 14
 if "%rem%"=="enter" goto 24
 if "%rem%"=="n" goto 24
 if "%rem%"=="N" goto 24
 
 :14
 set rem=goto start
 set yanchi=ping -n 60 127.1^>nul
 goto start
 
 :24
 set rem=rem goto
 cls
 
 rem==================当前日期时间和用户输入日期时间的检测和相对处理========================
 :start
 if "%riqi%%time:~0,5%"=="%d% %t%" goto run
 ping -n 15 127.1>nul
 
 rem==================DOS下的帮助提示=======================================================
 :help
 chcp 936 >nul
 echo 语法:etime 日 时间 命令(最好写完整路径) Y/N(是否循环运行,默认为N)
 echo 例:etime 7 20:20 notepad.exe (7日,20:20运行 NOTEPAD这个程序,并且不循环)
 echo 例:etime 7 20:20 "del c:\aaa.txt" (指定时间删除特定文件)
 echo 例:etime 0 20:20 notepad.exe Y (20:20运行 NOTEPAD这个程序,并且循环)
 echo DOS下输入 etime /? 或者 etime /h 得到帮助
 goto exit
 
 rem==================输入错误提示==========================================================
 :warng
 echo 您的日期输入有误!
 echo.
 goto begin
 
 
 rem==================输入错误提示==========================================================
 :warng1
 echo 您的时间输入有误!
 echo.
 goto shij
 
 rem==================执行用户定义命令或默认命令,以及是否循环==============================
 :run
 cls
 start %cmd%                   :执行命令
 %yanchi%                      :延迟时间接上文防止命令多次运行
 %rem%                         :定义是否循环
 exit                          :程序结束
 
 rem==================退出到提示符下=========================================================
 :warng2
 echo 语法错误!!
 :exit
 
 |