Board logo

标题: [日期时间] 批处理定时工具 [打印本页]

作者: cjiabing    时间: 2010-6-28 23:40     标题: 批处理定时工具

可以用来设定定时关机、定时重启、定时打开新程序、定时关闭新程序等等定时任务。使用定时功能需先开启Task Scheduler服务,适用于XP系统。打开新程序只需输入程序的路径和执行时间,而关闭程序是以结束该程序进程来做到的。好像只执行当天的时间任务,不能执行非当天的任务


  1. @echo off
  2. ::by cjiabing &from http://hi.baidu.com/cjiabing
  3. :start
  4. MODE con: COLS=48 LINES=19
  5. COLOR 3E
  6. cls
  7. call :dt
  8. echo              ╭═════════╮
  9. echo              ║     甲兵时代     ║
  10. echo  ╭═════┤   定时任务工具   ├═════╮
  11. echo  ║          ║       V2.2       ║          ║
  12. echo  ║          ╰═════════╯          ║
  13. echo  ║            1、定时关机                   ║
  14. echo  ║            2、取消定时关机               ║
  15. echo  ║            3、定时打开程序               ║
  16. echo  ║            4、定时关闭程序               ║
  17. echo  ║            5、查看、删除计划任务         ║
  18. echo  ║            6、开启任务计划服务功能       ║
  19. echo  ║            7、其它计划功能               ║
  20. echo  ║            8、语音时钟与明星报时         ║
  21. echo  ║            9、CMD                        ║
  22. echo  ║            0、退出                       ║
  23. echo  ╰═════════════════════╯
  24. echo.
  25. set /p xze=    请选择任务:
  26. if %xze%==1 goto task1
  27. if %xze%==2 goto task3
  28. if %xze%==3 goto task4
  29. if %xze%==4 goto task5
  30. if %xze%==5 goto task6
  31. if %xze%==6 goto task7
  32. if %xze%==7 goto task77
  33. if %xze%==8 call :task82
  34. if %xze%==9 goto task9
  35. if %xze%==0 exit
  36. goto start
  37. :dt
  38. title Date:%date%;Time:%time:~0,5%
  39. goto :eof
  40. :task1
  41. cls
  42. call :dt
  43. echo.
  44. echo.
  45. echo                  定时关机
  46. echo.
  47. echo.
  48. echo     时间格式:13:26 23:46 00:16 0:36 2:06
  49. echo.
  50. set /p tasktime=    执行时间(返回B;重启C):
  51. if /i %tasktime%==c goto task2
  52. if /i %tasktime%==b (goto start) else (echo.)
  53. at %tasktime% shutdown -s -f -t 60
  54. echo.
  55. echo    任务开始,正在返回!
  56. ping /n 3 127.0.1>nul
  57. goto start
  58. :task2
  59. cls
  60. call :dt
  61. echo.
  62. echo.
  63. echo                  定时重启
  64. echo.
  65. echo.
  66. echo     时间格式:13:26 23:46 00:16 0:36 2:06
  67. echo.
  68. set /p tasktime=    执行时间(返回B):
  69. if /i %tasktime%==b (goto start) else (echo.)
  70. at %tasktime% shutdown -r -f -t 60
  71. echo.
  72. echo    任务开始,正在返回!
  73. ping /n 3 127.0.1>nul
  74. goto start
  75. :task3
  76. cls
  77. echo.
  78. echo.
  79. echo                  取消定时关机和重启
  80. echo.
  81. echo.
  82. shutdown -a
  83. echo.
  84. echo    取消完成,正在返回!
  85. ping /n 3 127.0.1>nul
  86. goto start
  87. :task4
  88. ::使用at打开的程序会自动隐藏?
  89. cls
  90. echo.
  91. echo.
  92. echo                  定时执行程序
  93. echo.
  94. echo.
  95. echo.
  96. echo          路径含有空格时需外加双引号
  97. ::echo          运行程序以隐藏窗口形式运行
  98. ::echo          查看关闭程序请重新运行程序
  99. echo          获取桌面快捷方式指向路径:P
  100. echo          返回:B
  101. echo.
  102. echo.
  103. call :dt
  104. set /p pat=    程序路径:
  105. if /i %pat%==b (goto start) else (echo.)
  106. if /i %pat%==p (call :task8&cls&goto task4) else (echo.)
  107. echo.
  108. echo.
  109. echo     时间格式:13:26 23:46 00:16 0:36 2:06
  110. echo.
  111. call :dt
  112. set /p tasktime=    执行时间:
  113. echo.
  114. echo.
  115. at %tasktime%   /interactive   %pat%
  116. echo.
  117. echo    任务开始,正在返回!
  118. ping /n 3 127.0.1>nul
  119. goto start
  120. at 13:45 /interactive "D:\Program Files\TTPlayer\TTPlayer.exe"
  121. :task5
  122. cls
  123. echo.
  124. echo.
  125. echo                  定时关闭程序
  126. echo.
  127. echo.
  128. call :dt
  129. set /p prss=    进程名称(不用.exe;返回B):
  130. if /i %prss%==b (goto start) else (echo.)
  131. echo.
  132. echo.
  133. echo     时间格式:13:26 23:46 00:16 0:36 2:06
  134. echo.
  135. call :dt
  136. set /p tasktime=    执行时间:
  137. echo.
  138. at %tasktime% taskkill /f /t /im %prss%.exe
  139. ::at 00:03 taskkill /f /t /im TTPlayer.exe
  140. ::D:\Program Files\TTPlayer\TTPlayer.exe
  141. echo.
  142. echo    任务完成,正在返回!
  143. ping /n 3 127.0.1>nul
  144. goto start
  145. :task6
  146. MODE con: COLS=90 LINES=30
  147. COLOR 3E
  148. cls
  149. echo.
  150. echo.
  151. echo                  查看计划任务
  152. echo.
  153. at
  154. echo.
  155. pause
  156. echo.
  157. echo.
  158. echo                  删除计划任务
  159. echo.
  160. set /p xzc=    选择删除/全部清除/返回(x/c/b):
  161. echo.
  162. if /i %xzc%==b goto start
  163. if /i %xzc%==x (
  164. set /p xzdel=    输入需要删除任务的ID?序号?行号?:
  165. at %xzdel% /Delete
  166. goto task6
  167. )
  168. if /i %xzc%==c at /Delete /yes
  169. echo.
  170. echo    任务完成,正在返回!
  171. ping /n 3 127.0.1>nul
  172. goto start
  173. :task7
  174. cls
  175. echo.
  176. echo.
  177. echo            开关Task Scheduler服务项
  178. echo.
  179. echo.
  180. echo    使用定时功能需开启Task Scheduler服务
  181. echo    但该服务项也可能被其它程序和病毒使用
  182. echo.
  183. set /p xzef=    开启服务【Y】,关闭服务【N】:
  184. if /i %xzef%==y goto task71
  185. if /i %xzef%==n goto task72
  186. goto start
  187. :task71
  188. cls
  189. echo.
  190. echo.
  191. echo                  开启Task Scheduler服务
  192. echo.
  193. sc config schedule start= auto
  194. sc start schedule
  195. ::net start "Task Scheduler"
  196. echo.
  197. echo    开启完成,正在返回!
  198. ping /n 3 127.0.1>nul
  199. goto start
  200. :task72
  201. cls
  202. echo.
  203. echo.
  204. echo                  关闭Task Scheduler服务
  205. echo.
  206. sc stop schedule
  207. ::net stop "Task Scheduler"
  208. echo.
  209. echo    关闭完成,正在返回!
  210. ping /n 3 127.0.1>nul
  211. goto start
  212. :task8
  213. cls
  214. echo.
  215. echo.
  216. echo          获取桌面快捷方式指向的路径
  217. echo.
  218. echo              配合定时打开程序使用
  219. echo              只查找EXE的快捷方式
  220. echo              支持模糊搜索
  221. echo.
  222. echo.
  223. echo.
  224. set /p iput= 快捷方式名称(返回B):
  225. if /i %iput%==b (goto start) else (echo.)
  226. type "%USERPROFILE%\桌面\*%iput%*.lnk" | find /i "exe" | find /i "\">>_findpath.txt
  227. echo.
  228. type "%ALLUSERSPROFILE%\桌面\*%iput%*.lnk" | find /i "exe" | find /i "\">>_findpath.txt
  229. echo.>>_findpath.txt
  230. echo.>>_findpath.txt
  231. for /f "tokens=*" %%a in (_findpath.txt) do echo "%%a">>_findpath.txt
  232. echo.>>_findpath.txt
  233. echo      当路径名含有空格时,请使用加双引号的路径>>_findpath.txt
  234. start _findpath.txt
  235. echo.
  236. echo    关闭完成,正在返回!
  237. ping /n 3 127.0.1>nul
  238. del /f /q _findpath.txt
  239. goto :eof
  240. :task9
  241. MODE con: COLS=90 LINES=30
  242. COLOR 3E
  243. cls
  244. echo.
  245. echo                        CMD环境,使用exit退出!
  246. echo.
  247. call :dt
  248. echo.
  249. CMD /k cd /d c:\
  250. ::CMD /k cd /d c:\
  251. echo.
  252. pause
  253. goto start
  254. :task82
  255. cls
  256. echo.
  257. echo.
  258. echo                语音时钟与明星报时
  259. echo.
  260. echo       现在时间是:%time:~0,5%
  261. echo.   
  262. echo       1、现在报时
  263. Echo       2、设置每天每小时语音报时
  264. echo       3、修改语音报时参数
  265. echo       4、明星报时
  266. echo       5、设置每天每小时明星报时
  267. echo       6、修改明星报时参数
  268. echo       7、查看与清除报时任务
  269. echo       8、安装、卸载与帮助
  270. echo       0、返回
  271. echo.
  272. C:\Baoshi\_read.vbs 今天是%date:~0,4%年%date:~5,2%月%date:~8,2%日%date:~11,3%
  273. :task88
  274. cls
  275. echo.
  276. echo.
  277. echo                语音时钟与明星报时
  278. echo.
  279. echo       现在时间是:%time:~0,5%
  280. echo.   
  281. echo       1、现在报时
  282. Echo       2、设置每天每小时语音报时
  283. echo       3、修改语音报时参数
  284. echo       4、明星报时
  285. echo       5、设置每天每小时明星报时
  286. echo       6、修改明星报时参数
  287. echo       7、查看与清除报时任务
  288. echo       8、安装、卸载与帮助
  289. echo       0、返回
  290. echo.
  291. set /p xzeb=    请选择:
  292. taskkill /f /t /im wmplayer.exe>nul 2>nul
  293. if %xzeb%==1 call :yybs
  294. if %xzeb%==2 goto baosm
  295. if %xzeb%==3 goto eyy
  296. if %xzeb%==4 goto mxbs
  297. if %xzeb%==5 goto mxbst
  298. if %xzeb%==6 goto emx
  299. if %xzeb%==7 goto cbs
  300. if %xzeb%==8 goto inst
  301. if %xzeb%==0 goto start
  302. goto task88
  303. :yybs
  304. if not exist c:\Baoshi md c:\Baoshi
  305. if not exist c:\Baoshi\Baoshi.bat call :baosm2
  306. start /min "" c:\Baoshi\Baoshi.bat /B
  307. goto :eof
  308. :cbs
  309. MODE con: COLS=85 LINES=25
  310. schtasks
  311. echo.
  312. set /p xzc=    清除/返回(c/b):
  313. echo.
  314. if %xzc%==b goto bse
  315. del c:\Baoshi\_read.vbs>nul 2>nul
  316. schtasks /delete /tn "Baoshi" /f
  317. goto bse
  318. :mxbs
  319. if not exist c:\Baoshi\Sound cls&echo    没有安装明星报时语音包& ping /n 3 127.0.1>nul&goto task88
  320. if exist "c:\Baoshi\sound\%time:~0,2%.mp3" (start /min wmplayer.exe c:\Baoshi\sound\%time:~0,2%.mp3) else (start /min wmplayer.exe "c:\Baoshi\sound\0%time:~1,1%.mp3")
  321. goto task88
  322. :mxbst
  323. cls
  324. if not exist c:\Baoshi md c:\Baoshi
  325. if not exist c:\Baoshi\MXBaoshi.bat call :mxbst2
  326. sc config schedule start= auto
  327. sc start schedule
  328. schtasks /delete /tn "Baoshi" /f>nul 2>nul
  329. schtasks /create /ru system /sc hourly /st 00:00:00 /ed 2050/07/26 /tn "Baoshi" /tr c:\Baoshi\MXBaoshi.bat
  330. ping /n 2 127.0.1>nul
  331. goto bse
  332. :mxbst2
  333. echo @echo off>>c:\Baoshi\MXBaoshi.bat
  334. echo if exist "c:\Baoshi\sound\%%time:~0,2%%.mp3" (start /min wmplayer.exe c:\Baoshi\sound\%%time:~0,2%%.mp3) else (start /min wmplayer.exe "c:\Baoshi\sound\0%%time:~1,1%%.mp3")>>c:\Baoshi\MXBaoshi.bat
  335. echo ping /n 15 127.0.1^>nul>>c:\Baoshi\MXBaoshi.bat
  336. echo taskkill /f /t /im wmplayer.exe>>c:\Baoshi\MXBaoshi.bat
  337. echo exit>>c:\Baoshi\MXBaoshi.bat
  338. goto :eof
  339. :baosm
  340. cls
  341. if not exist c:\Baoshi md c:\Baoshi
  342. if not exist c:\Baoshi\MXBaoshi.bat call :baosm2
  343. sc config schedule start= auto
  344. sc start schedule
  345. schtasks /delete /tn "Baoshi" /f>nul 2>nul
  346. schtasks /create /ru system /sc hourly /st 00:00:00 /ed 2050/07/26 /tn "Baoshi" /tr c:\Baoshi\Baoshi.bat
  347. ping /n 2 127.0.1>nul
  348. goto bse
  349. :baosm2
  350. copy %~f0 c:\Baoshi
  351. echo @echo off>c:\Baoshi\Baoshi.bat
  352. echo ^set vn^=^0>>c:\Baoshi\Baoshi.bat
  353. echo ^set rn^=^0>>c:\Baoshi\Baoshi.bat
  354. :baosm3
  355. echo for /f "tokens=1,2,3 delims=:" %%%%i in ('echo %%time%%') do set tvar=%%%%i点%%%%j分>>c:\Baoshi\Baoshi.bat
  356. echo echo Set oVoice = CreateObject("SAPI.SpVoice") ^>c:\Baoshi\_read.vbs>>c:\Baoshi\Baoshi.bat
  357. echo echo with oVoice ^>^>c:\Baoshi\_read.vbs>>c:\Baoshi\Baoshi.bat
  358. echo echo set .voice = .GetVoices.Item^(%%vn%%^) ^>^>c:\Baoshi\_read.vbs>>c:\Baoshi\Baoshi.bat
  359. echo echo .Volume = 100 ^>^>c:\Baoshi\_read.vbs>>c:\Baoshi\Baoshi.bat
  360. echo echo .rate = %%rn%% ^>^>c:\Baoshi\_read.vbs>>c:\Baoshi\Baoshi.bat
  361. echo echo .speak(Wscript.Arguments(0)) ^>^>c:\Baoshi\_read.vbs>>c:\Baoshi\Baoshi.bat
  362. echo echo end with ^>^>c:\Baoshi\_read.vbs>>c:\Baoshi\Baoshi.bat
  363. echo c:\Baoshi\_read.vbs "现在时间是%%tvar%%!">>c:\Baoshi\Baoshi.bat
  364. echo exit>>c:\Baoshi\Baoshi.bat
  365. goto :eof
  366. :bse
  367. MODE con: COLS=48 LINES=19
  368. echo.
  369. echo    设置完成,正在返回!
  370. ping /n 3 127.0.1>nul
  371. goto task88
  372. :eyy
  373. cls
  374. echo.
  375. echo.
  376. echo                修改语音报时参数
  377. echo.
  378. echo      现在时间是:%time:~0,5%
  379. echo.   
  380. echo.
  381. echo    可系统设置:控制面板→语音→设置
  382. echo.
  383. del c:\Baoshi\_read.vbs>nul 2>nul
  384. set /p vn=    请设定朗读语音(0~3;默认为0):
  385. set /p rn=    请设定朗读语速(-10~10;默认为0):
  386. if %rn% equ " " (%rn%=0)
  387. echo @echo off>c:\Baoshi\Baoshi.bat
  388. call :baosm3
  389. goto bse
  390. :emx
  391. cls
  392. echo.
  393. echo.
  394. echo                修改明星报时参数
  395. echo.
  396. echo      现在时间是:%time:~0,5%
  397. echo.   
  398. echo.
  399. set /p bsexe=    设置播放程序(默认wmplayer.exe):
  400. if exist c:\Baoshi\MXBaoshi.bat del c:\Baoshi\MXBaoshi.bat
  401. echo @echo off>>c:\Baoshi\MXBaoshi.bat
  402. echo start /min %%bsexe%% c:\Baoshi\sound\%%time:~0,2%%.mp3>>c:\Baoshi\MXBaoshi.bat
  403. echo ping /n 15 127.0.1^>nul>>c:\Baoshi\MXBaoshi.bat
  404. echo taskkill /f /t /im %%bsexe%%>>c:\Baoshi\MXBaoshi.bat
  405. echo exit>>c:\Baoshi\MXBaoshi.bat
  406. goto bse
  407. :inst
  408. cls
  409. echo.
  410. echo.
  411. echo                安装、卸载与帮助
  412. echo.
  413. echo.   
  414. echo.   
  415. echo                1、安装
  416. echo                2、卸载
  417. echo                3、帮助
  418. echo                0、返回
  419. echo.
  420. set /p ins=    请选择:
  421. if %ins%==1 goto inst1
  422. if %ins%==2 goto unin
  423. if %ins%==3 goto help1
  424. if %ins%==0 goto task88
  425. goto inst
  426. :inst1
  427. cls
  428. echo.
  429. echo.
  430. echo    拷贝当前程序至c:\Baoshi
  431. echo    拷贝明星语音包“Sound”至c:\Baoshi
  432. if not exist c:\Baoshi\Sound md c:\Baoshi\Sound
  433. ping /n 2 127.0.1>nul
  434. echo.
  435. "%ProgramFiles%\WinRAR\Rar.exe"  x  Sound.rar  c:\Baoshi\Sound
  436. ping /n 2 127.0.1>nul
  437. copy %~f0 c:\Baoshi
  438. copy %~f0 "%USERPROFILE%\桌面"
  439. xcopy /s Sound c:\Baoshi\Sound
  440. goto bse
  441. :unin
  442. cls
  443. echo.
  444. echo.
  445. echo    清理程序与c:\Baoshi下的明星语音包
  446. ping /n 2 127.0.1>nul
  447. echo.
  448. set /p chd=    一旦卸载你将无法恢复,是否卸载?(Y/N):
  449. if /i %chd%==Y (goto unin2) else (goto :task88)
  450. :unin2
  451. echo.
  452. del /s /q c:\Baoshi\*.*"
  453. rd /s /q c:\Baoshi
  454. schtasks /delete /tn "Baoshi" /f
  455. goto bse
  456. :help1
  457. cls
  458. echo.
  459. echo    1)语音报时需安装中文TTS语音插件
  460. Echo    2)控制面板→语音→设置→选择缺省语音
  461. Echo    3)明星报时需明星报时语音包“Sound”
  462. Echo    4)语音名称格式:07.mp3——23.mp3
  463. echo    5)解压至:c:\Baoshi\Sound
  464. echo    6)使用Windows Media Player或TTPlayer
  465. echo    7)需开启Task Scheduler服务
  466. echo.
  467. pause
  468. goto inst
复制代码

[ 本帖最后由 cjiabing 于 2010-10-21 23:41 编辑 ]
作者: c64kkd    时间: 2010-11-10 13:10

受益匪浅。好指标!试了可以用,感谢楼主的分享
作者: mstsc    时间: 2011-7-17 19:22

很好很有用,具体的还要慢慢研究
作者: wangxiulin    时间: 2011-7-18 15:25

恩!不错!!!!!!!!!!!!!!!
作者: wangxiulin    时间: 2011-7-18 15:36

批处理学得不错!!!!
作者: 狱渊    时间: 2013-5-1 10:44

很好用  谢了
作者: hnldwhm52    时间: 2014-9-11 12:12

谢谢分享。
作者: Hawk3    时间: 2014-10-23 22:51

谢谢楼主,受用了




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2