关于批处理命令"Time"的问题,批处理高手请进!
因为工作的特殊需要,有一台电脑要随时的更改系统时间。熟悉批处理的朋友都会知道,用批处理命令来更改系统时间是最快的,双击一下即可。现在我已经知道了用time00:00:00...
因为工作的特殊需要,有一台电脑要随时的更改系统时间。熟悉批处理的朋友都会知道,用批处理命令来更改系统时间是最快的,双击一下即可。现在我已经知道了用 time 00:00:00 命令可以随意的更改系统时间到自己指定的时间。
各位高手,有没有办法可以使用批处理来固定的更改时间,比如运行一下批处理,系统时间可以固定的增加两个小时或几分钟,或者是减少分钟。
因为工作需要,我的电脑的系统时间通常要不断的加快五分钟,再加快五分钟......
100分敬上。
其实也没有大家想的那么麻烦,
只需要在当前时间的基础上加上一个固定的时间即可。
比如现在是11:30,运行此批处理后加一个固定时间(设置为30分钟),马上就变成12:00,再运行一次就变成12:30
问题终于解决,三楼的答案最为完美!
同时也谢谢一楼和二楼的独到见解!!! 展开
各位高手,有没有办法可以使用批处理来固定的更改时间,比如运行一下批处理,系统时间可以固定的增加两个小时或几分钟,或者是减少分钟。
因为工作需要,我的电脑的系统时间通常要不断的加快五分钟,再加快五分钟......
100分敬上。
其实也没有大家想的那么麻烦,
只需要在当前时间的基础上加上一个固定的时间即可。
比如现在是11:30,运行此批处理后加一个固定时间(设置为30分钟),马上就变成12:00,再运行一次就变成12:30
问题终于解决,三楼的答案最为完美!
同时也谢谢一楼和二楼的独到见解!!! 展开
3个回答
展开全部
楼主要求比较简单,那就拿个高手写的给你用:
@ECHO OFF
for /f "tokens=1,2 delims=:" %%i in ('time/t') do set xiaos=%%i&set fenz=%%j
set/a fenz=%fenz%+30
if %fenz:~0,1% geq 6 (set/a xiaos=%xiaos%+1&set/a fenz=%fenz%-60)
time %xiaos%:%fenz%
作者:小楼_春雨
下面这个是我写的:未发现有任何限制,请帮测试,发现问题请留言~
如果你要改每次进给的时间,只要改set/a "tm=%%j+5"这里的5成其他数字即可。
@echo off&set m=30
for /f "tokens=1-3 delims=-" %%a in ("%date:~0,10%") do (
for /f "tokens=1,2 delims=:" %%i in ("%time%") do (
set/a "tm=%%j+5"&set/a "th=%%i"&set "yy=%%a"
set "mm=%%b"&set "dd=%%c"
for %%d in (01 03 05 07 08 10 12)do if %%b==%%d set "m=31"
call:eof
))
time %th%:%tm% & date %yy%-%mm%-%dd% & exit
:eof
if "%mm%"=="02" call:s2y
if %dd% lss 10 set dd=%dd:~-1%
if %mm% lss 10 set mm=%mm:~-1%
if %tm% geq 60 set/a "tm-=60"&set/a "th+=1"
if %th% geq 24 set/a "th=00"&set/a "dd+=1"
if %dd% gtr %m% set/a "mm+=1"&set "dd=01"
if %mm% gtr 12 set/a "yy+=1"&set "mm=01"
exit /b eof
:s2y
set/a ck=yy/4&set/a ck=ck*4
if "%ck%"=="%yy%" (set/a m=29) else (set/a m=28)
@ECHO OFF
for /f "tokens=1,2 delims=:" %%i in ('time/t') do set xiaos=%%i&set fenz=%%j
set/a fenz=%fenz%+30
if %fenz:~0,1% geq 6 (set/a xiaos=%xiaos%+1&set/a fenz=%fenz%-60)
time %xiaos%:%fenz%
作者:小楼_春雨
下面这个是我写的:未发现有任何限制,请帮测试,发现问题请留言~
如果你要改每次进给的时间,只要改set/a "tm=%%j+5"这里的5成其他数字即可。
@echo off&set m=30
for /f "tokens=1-3 delims=-" %%a in ("%date:~0,10%") do (
for /f "tokens=1,2 delims=:" %%i in ("%time%") do (
set/a "tm=%%j+5"&set/a "th=%%i"&set "yy=%%a"
set "mm=%%b"&set "dd=%%c"
for %%d in (01 03 05 07 08 10 12)do if %%b==%%d set "m=31"
call:eof
))
time %th%:%tm% & date %yy%-%mm%-%dd% & exit
:eof
if "%mm%"=="02" call:s2y
if %dd% lss 10 set dd=%dd:~-1%
if %mm% lss 10 set mm=%mm:~-1%
if %tm% geq 60 set/a "tm-=60"&set/a "th+=1"
if %th% geq 24 set/a "th=00"&set/a "dd+=1"
if %dd% gtr %m% set/a "mm+=1"&set "dd=01"
if %mm% gtr 12 set/a "yy+=1"&set "mm=01"
exit /b eof
:s2y
set/a ck=yy/4&set/a ck=ck*4
if "%ck%"=="%yy%" (set/a m=29) else (set/a m=28)
参考资料: http://zhidao.baidu.com/question/31433486.html?si=1
展开全部
这个问题我想了半天,主要是在windows下取了系统的时间值以后,我没办法用批处理在这个时间的基础上帮它增加一个固定的数值,因为windows的时间格式是00:00 ,可能是因为我才疏学浅把,不过可以交你一点东西。
新建个txt文件,名字叫time.txt ,编辑这个txt文件
time /T > aaa.txt 回车
aaa.txt 然后你手动改掉这个时间,保存下
然后再建个txt文件,名字叫time2。txt。编辑内容如下
time < aaa.txt
把time2。txt和time。txt都改成。bat结尾的就可以了,要改时间的话,先运行time.bat 在运行time2.bat 就可以了,希望能帮到你
已经有人写出来了,强银阿!
新建个txt文件,名字叫time.txt ,编辑这个txt文件
time /T > aaa.txt 回车
aaa.txt 然后你手动改掉这个时间,保存下
然后再建个txt文件,名字叫time2。txt。编辑内容如下
time < aaa.txt
把time2。txt和time。txt都改成。bat结尾的就可以了,要改时间的话,先运行time.bat 在运行time2.bat 就可以了,希望能帮到你
已经有人写出来了,强银阿!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@echo off
set d=%date%
set year=%d:~0,4%
set month=%d:~5,2%
set day=%d:~8,2%
set t=%time%
set hour=%t:~0,2%
set minute=%t:~3,2%
set /a minute+=5
if %minute% GEQ 60 call :dealmin
date %year%-%month%-%day%
time %hour%:%minute%:00
pause>nul
exit
:dealmin
set /a minute-=60
set /a hour+=1
if %hour% NEQ 24 goto :eof
set /a day+=1
goto :eof
说明:
1、该批处理运行一次即将系统时间增加5分钟
2、请不要在月末(即一个月的最后一天的最后5分钟之内,如1月31日23点55分到2月1日0点0分之间这5分钟内)和年末运行该批处理,否则将会出现错误。当然了,也可以避免,不过需要更多的代码,会显得很臃肿,况且,我想工作时间是不会在晚上11点钟以后吧?
set d=%date%
set year=%d:~0,4%
set month=%d:~5,2%
set day=%d:~8,2%
set t=%time%
set hour=%t:~0,2%
set minute=%t:~3,2%
set /a minute+=5
if %minute% GEQ 60 call :dealmin
date %year%-%month%-%day%
time %hour%:%minute%:00
pause>nul
exit
:dealmin
set /a minute-=60
set /a hour+=1
if %hour% NEQ 24 goto :eof
set /a day+=1
goto :eof
说明:
1、该批处理运行一次即将系统时间增加5分钟
2、请不要在月末(即一个月的最后一天的最后5分钟之内,如1月31日23点55分到2月1日0点0分之间这5分钟内)和年末运行该批处理,否则将会出现错误。当然了,也可以避免,不过需要更多的代码,会显得很臃肿,况且,我想工作时间是不会在晚上11点钟以后吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询