找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28427|回复: 6

[文本处理] 系统重启记数批处理

[复制链接]
发表于 2014-12-6 13:13:29 | 显示全部楼层 |阅读模式
Hi 各位大神,

我想实现一个系统重启记录重启日期时间和累加数的批处理
如果能有一个提示能让我设置需要重启几个小时就更好了(就是当设置的小时数够了之后就自动停止重启了).

需要的结果比如:
2014/12/6 13:00 系统重启第 1 次
2014/12/6 13:05 系统重启第 2 次
.
.
2014/12/7 10:00 系统重启第 n 次

shutdown -r -t 120 -f -c "reboot" <---我仅会用这个无法记数,在其后面我加了 date /t >> c:\reboot.txt
                                                                                                    time /t >>  c:\reboot.txt
但是这个结果不尽如人意啊!希望各位大神指点一下。
发表于 2014-12-6 18:23:43 | 显示全部楼层
???你的目的是你指定一个时间,比如说3小时,然后在这3小时的时间里面就一直重启??

如果是的话,你可以获取当前时间然后加上3小时,然后在这期间用at设置重启....
 楼主| 发表于 2014-12-6 19:19:57 | 显示全部楼层
是最好能echo一个时间,请输入需要重启的时间,然后重启一次记录一次,比如:
请输入你需要重启几个小时:<---比如我输入4
然后就开始一直重启,第一次重启在C盘生成一个reboot.log的文件,下来就是在这个log文件里面记录重启次数
2014/12/6 13:00 系统重启第 1 次
2014/12/6 13:05 系统重启第 2 次
.
.
.
发表于 2014-12-6 22:28:29 | 显示全部楼层
本帖最后由 mms0536 于 2014-12-6 22:44 编辑

回复 3# xxnda
  1. @echo off
  2. :begin
  3. if not exist ./reboottime.ini echo 0 >./reboottime.ini
  4. set /p c=<./reboottime.ini
  5. set c=%c: =%
  6. if not exist ./restarttime.ini goto inputtime
  7. set /p restarttime=<./restarttime.ini
  8. goto next
  9. :inputtime
  10. cls
  11. echo.
  12. echo 输入要重启到的时间,时间格式hh:mm
  13. echo.
  14. set /p restarttime=请输入要重启到的时间:
  15. echo %restarttime%>./restarttime.ini
  16. :next
  17. set hour=%restarttime:~0,2%
  18. set min=%restarttime:~3,2%
  19. set panduan=%restarttime:~2,1%
  20. if %hour% GTR 23 goto error
  21. if %min% GTR 59 goto error
  22. if "%panduan%" NEQ ":" goto error
  23. set curhour=%time:~0,2%
  24. set curmin=%time:~3,2%
  25. set /a a=%hour%-%curhour%
  26. set /a b=%min%-%curmin%
  27. rem 小时相减之后大于0,肯定不到时间
  28. if %a% GTR 0 goto restart
  29. rem 小时相减小于0 肯定过时间了,退出
  30. if %a% LSS 0 goto exit
  31. rem 小时相减=0,再判断分钟数,分钟数相减大于0,还不到时间
  32. if %b% GTR 0 goto restart
  33. rem 到这里小时肯定就是一样了,分钟数如果小于或者等于0,那就结束
  34. if %b% LEQ 0 goto exit
  35. :restart
  36. echo 即将重启电脑
  37. set /a c=%c%+1
  38. echo %c% >./reboottime.ini
  39. echo %date%,%time%,第%c%次重启>>.\reboot.log
  40. rem 自己修改300,单位秒,如果立即重启,就0
  41. shutdown -r -t 300
  42. pause>nul
  43. exit
  44. :exit
  45. echo 已经重启完了
  46. type .\reboot.log
  47. pause>nul
  48. exit
  49. :error
  50. echo .
  51. echo error:时间格式不对,或者输入时间有误
  52. echo .
  53. pause>nul
  54. goto begin
复制代码
发表于 2014-12-6 22:31:11 | 显示全部楼层
本帖最后由 mms0536 于 2014-12-6 22:45 编辑

回复 3# xxnda


    同样新手,时间格式需要改成hh:mm格式,在区域和语言选项里面...
输入的时候要输入hh:mm格式,会进行一个简单的判断
判断前两位数是不是小于24,没有判断小于0,
判断第三位是不是:
判断后两位是不是小于60,也没判断小于0

你要是有其他的想法自己改吧

效率有点低,不过我自己测试功能是实现了

会生成三个文件,生成位置现在默认是当前路径,要修改你自己改吧

如果要重新开始,删除三个文件就好了
 楼主| 发表于 2014-12-7 16:55:15 | 显示全部楼层
回复  xxnda
mms0536 发表于 2014-12-6 22:28



    非常感谢你的回复,我明天将试试。还有,如果我仅想实现自动重启,然后仅仅只计数的话,那应该script应该会少很多呵!是否能再给个这样的简化版的script,非常感谢!
发表于 2014-12-7 18:47:46 | 显示全部楼层
回复 6# xxnda
  1. @echo off
  2. if not exist ./reboottime.ini echo 0 >./reboottime.ini
  3. set /p c=<./reboottime.ini
  4. set c=%c: =%
  5. set /a c=%c%+1
  6. echo %c% >./reboottime.ini
  7. echo %date%,%time%,第%c%次重启>>.\reboot.log
  8. shutdown -r -t 300
  9. pause>nul
  10. exit
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 09:43 , Processed in 0.018064 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表