标题: [文本处理] 系统重启记数批处理 [打印本页]
作者: xxnda 时间: 2014-12-6 13:13 标题: 系统重启记数批处理
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
但是这个结果不尽如人意啊!希望各位大神指点一下。
作者: mms0536 时间: 2014-12-6 18:23
???你的目的是你指定一个时间,比如说3小时,然后在这3小时的时间里面就一直重启??
如果是的话,你可以获取当前时间然后加上3小时,然后在这期间用at设置重启....
作者: xxnda 时间: 2014-12-6 19:19
是最好能echo一个时间,请输入需要重启的时间,然后重启一次记录一次,比如:
请输入你需要重启几个小时:<---比如我输入4
然后就开始一直重启,第一次重启在C盘生成一个reboot.log的文件,下来就是在这个log文件里面记录重启次数
2014/12/6 13:00 系统重启第 1 次
2014/12/6 13:05 系统重启第 2 次
.
.
.
作者: mms0536 时间: 2014-12-6 22:28
本帖最后由 mms0536 于 2014-12-6 22:44 编辑
回复 3# xxnda - @echo off
- :begin
- if not exist ./reboottime.ini echo 0 >./reboottime.ini
- set /p c=<./reboottime.ini
- set c=%c: =%
- if not exist ./restarttime.ini goto inputtime
- set /p restarttime=<./restarttime.ini
- goto next
- :inputtime
- cls
- echo.
- echo 输入要重启到的时间,时间格式hh:mm
- echo.
- set /p restarttime=请输入要重启到的时间:
- echo %restarttime%>./restarttime.ini
- :next
- set hour=%restarttime:~0,2%
- set min=%restarttime:~3,2%
- set panduan=%restarttime:~2,1%
- if %hour% GTR 23 goto error
- if %min% GTR 59 goto error
- if "%panduan%" NEQ ":" goto error
- set curhour=%time:~0,2%
- set curmin=%time:~3,2%
- set /a a=%hour%-%curhour%
- set /a b=%min%-%curmin%
- rem 小时相减之后大于0,肯定不到时间
- if %a% GTR 0 goto restart
- rem 小时相减小于0 肯定过时间了,退出
- if %a% LSS 0 goto exit
- rem 小时相减=0,再判断分钟数,分钟数相减大于0,还不到时间
- if %b% GTR 0 goto restart
- rem 到这里小时肯定就是一样了,分钟数如果小于或者等于0,那就结束
- if %b% LEQ 0 goto exit
- :restart
- echo 即将重启电脑
- set /a c=%c%+1
- echo %c% >./reboottime.ini
- echo %date%,%time%,第%c%次重启>>.\reboot.log
- rem 自己修改300,单位秒,如果立即重启,就0
- shutdown -r -t 300
- pause>nul
- exit
- :exit
- echo 已经重启完了
- type .\reboot.log
- pause>nul
- exit
- :error
- echo .
- echo error:时间格式不对,或者输入时间有误
- echo .
- pause>nul
- goto begin
复制代码
作者: mms0536 时间: 2014-12-6 22:31
本帖最后由 mms0536 于 2014-12-6 22:45 编辑
回复 3# xxnda
同样新手,时间格式需要改成hh:mm格式,在区域和语言选项里面...
输入的时候要输入hh:mm格式,会进行一个简单的判断
判断前两位数是不是小于24,没有判断小于0,
判断第三位是不是:
判断后两位是不是小于60,也没判断小于0
你要是有其他的想法自己改吧
效率有点低,不过我自己测试功能是实现了
会生成三个文件,生成位置现在默认是当前路径,要修改你自己改吧
如果要重新开始,删除三个文件就好了
作者: xxnda 时间: 2014-12-7 16:55
回复 xxnda
mms0536 发表于 2014-12-6 22:28
非常感谢你的回复,我明天将试试。还有,如果我仅想实现自动重启,然后仅仅只计数的话,那应该script应该会少很多呵!是否能再给个这样的简化版的script,非常感谢!
作者: mms0536 时间: 2014-12-7 18:47
回复 6# xxnda - @echo off
- if not exist ./reboottime.ini echo 0 >./reboottime.ini
- set /p c=<./reboottime.ini
- set c=%c: =%
- set /a c=%c%+1
- echo %c% >./reboottime.ini
- echo %date%,%time%,第%c%次重启>>.\reboot.log
- shutdown -r -t 300
- pause>nul
- exit
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |