[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 asd821089612 于 2011-8-24 07:14 编辑
  1. @echo off
  2. if not exist date.txt goto 1
  3. for /f "delims=&" %%i in (date.txt) do (
  4.     if %%i==%date% goto 3
  5. )
  6. goto 1
  7. :3
  8. if not exist shutdown.txt goto 1
  9. for /f "delims=:. tokens=1,2" %%i in (shutdown.txt) do (
  10.     set a=%%i
  11.     set b=%%j
  12. )
  13. for /f "delims=:. tokens=1,2" %%a in ('echo %time%') do (
  14.     set c=%%a
  15.     set d=%%b
  16. )
  17. set /a b+=20
  18. if %b% geq 60 (
  19.     set /a b-=60
  20.     set /a a+=1
  21. )
  22. if %a% gtr %c% goto 2
  23. if %c% equ %a% goto re
  24. goto 1
  25. :re
  26. if %b% gtr %d% goto 2
  27. goto 1
  28. :1
  29. @echo off
  30. echo %date%>date.txt
  31. for /f "delims=:. tokens=1,2" %%i in ('echo %time%') do (
  32.     set a=%%i
  33.     set b=%%j
  34. )
  35. set /a b+=45
  36. if %b% geq 60 (
  37.     set /a b-=60
  38.     set /a a+=1
  39. )
  40. at %a%:%b% shutdown -s -t 3
  41. echo %a%:%b%>shutdown.txt
  42. exit
  43. :2
  44. shutdown -s -t 3
复制代码
最后只要将这个批处理加进注册表开机启动就行了
代码很长 不够精简,有待改进,我是初学者,还在上初中,用简单的命令也只能做到这个程度了
我的代码的原理是这样的:先记录下当前时间,再将时间加上45分钟 (满六十进一位) 添加计划任务,在45分钟之后自动关机 并把那个时间记录进 shutdown.txt 这个文件中
第二次打开时,因为时间不能进行减法运算,所以我就先将上次记录在 shutdown.txt 中的时间加上个二十分钟 (和上面一样) 再比较加上的时间和当前时间(现比较时,再比较分),将会出现两种情况
1.如果当前时间大于计算后的时间,则已经过了20分钟,再跳转到第一次运行时的程序(添加计划任务、关机、记录时间)
2.如果当前时间小于计算后的时间,则说明未过20分钟,立刻关机
理论上代码有如下缺点 待修改
1.如果是23:00 到次日凌晨的话,可能不行
nothing's gonna change
and I've never changed

TOP

返回列表