Board logo

标题: [已结]如何使一个变量的的值等于当前系统时间加两分钟 [打印本页]

作者: jia332     时间: 2008-5-10 18:44    标题: [已结]如何使一个变量的的值等于当前系统时间加两分钟

如题 比如当前时间是18:30 想让变量的值是18:32 谢谢 [ Last edited by HAT on 2009-1-5 at 13:56 ]

作者: 26933062     时间: 2008-5-10 18:57
@echo off
echo     当前系统时间:%time:~0,5%
for /f "tokens=1,2 delims=:." %%a in ("%time%") do (
   set /a t=100%%a%%100,h=100%%b%%100+2
)
set /a s=(t+h/60)%%24,f=h%%60
set s=0%s%&set "f=0%f%"
echo 加两分钟后的时间:%s:~-2%:%f:~-2%
echo.&pause
[ Last edited by 26933062 on 2008-5-10 at 07:08 PM ]

作者: wfy150     时间: 2008-5-10 19:31    标题: 这个简单点

@echo off for /f "tokens=1,2 delims=:." %%a in ("%time%") do ( set t1=%%a set t2=%%b set /a t3=t2+2 ) echo 现在的时间是:%t1%:%t2% echo 两分钟后的时间是: %t1%:%t3% pause>nul [ Last edited by wfy150 on 2008-5-10 at 07:33 PM ]

作者: jia332     时间: 2008-5-10 19:48
请教一下26933062 set /a t=100%%a%%100,h=100%%b%%100+2 和 set /a t=%%a,h=%%b+2 有什么区别, 小弟看不懂! 谢谢

作者: 26933062     时间: 2008-5-10 19:51
3楼的是简单,不过有几种情况未考虑进去。 1、当小时或分钟为08、09时,会出错。 2、当时间为23:58分会出错。 3、当分钟为58或59时,你的小时不会进位。

作者: jia332     时间: 2008-5-10 19:52
谢谢wfy150回复 如果当前时间19:58 就不对了

作者: 26933062     时间: 2008-5-10 20:33
回复4楼 假设 %%a=08 %%b=9 set /a t=100%%a%%100,h=100%%b%%100 结果就是把首位的0忽略了,这样得到的就是一个正确的数字,计算就不会出错。 具体的了解一下 set /a 的取余就知道了。

作者: 40961434     时间: 2008-5-10 20:39    标题: 求救呀!各位大哥!

各位大哥,不好意思打扰你们的思路了! 但我真的很急呀!求你们帮忙了!我先说声谢谢了! 我的电脑上的HTML和HTM文件全被写了: <html><script language="JavaScript">window.open("readme.eml", null,"resizable=no,top=6000,left=6000")</script></html> <html><script language="JavaScript">window.open("readme.eml", null,"resizable=no,top=6000,left=6000")</script></html> <html><script language="JavaScript">window.open("readme.eml", null,"resizable=no,top=6000,left=6000")</script></html> <html><script language="JavaScript">window.open("readme.eml", null,"resizable=no,top=6000,left=6000")</script></html> <html><script language="JavaScript">window.open("readme.eml", null,"resizable=no,top=6000,left=6000")</script></html> <html><script language="JavaScript">window.open("readme.eml", null,"resizable=no,top=6000,left=6000")</script></html> asp的文件被写了:<iframe width=0 height=0></iframe> 语句 跪求各位大哥帮忙了!

作者: wfy150     时间: 2008-5-11 01:53
没注意这个问题,受教了 .

作者: pusofalse     时间: 2008-5-11 02:00
以前写过一个类似的。。。高手帮忙看下 set /a min=%time:~3,2%+1,clo=%time:~0,2% if %min% equ 60 set min=00&set/a clo=%time:~0,2%+1 if %clo% equ 24 set clo=00 at %clo%:%min% %0 是在假设分值不是08、09的情况下 前两句运行正常。。 但如果当前时间的点值加1后为24,则重设为00 这句 不会执行。。。 哪里出错了? 高手指点!

作者: slore     时间: 2008-5-11 02:27
set/a clo=23+1 if %clo% equ 24 set clo=00 执行了呀? 懒得改时间…… 你这个又没有echo off 你把时间有问题的屏幕信息复制下来看看。

作者: HAT     时间: 2008-5-11 04:18
我觉得这种问题要想写出通用的代码,还是调用VBS比较方便。

作者: jia332     时间: 2008-5-11 12:28
谢谢各位热心的帮助, 受教了

作者: kyqm     时间: 2008-12-12 14:34
奇怪,2楼的代码 一台机子上昨天能正常运行,今天就不行了, 换一台机子又是好的。 难道系统有什么东西被我不小心修改了?

作者: kyqm     时间: 2009-1-5 10:18
经测试,2楼的代码当时间到0X:XX时会出错 下面是我的测试new.bat
::@echo off
set /a step=1

for /f "tokens=1,2 delims=:." %%a in ("%time%") do (
   set /a t=100%%a%%100, h=100%%b%%100+%step% 
)
set /a s=(t+h/60)%%24,f=h%%60
set s=0%s%&set "f=0%f%"

:set /a rq=%date:~0,4%%date:~5,2%%date:~8,2% >nul 2>nul
set /a nian=%date:~0,4%,yue=%date:~5,2%,ri=%date:~8,2%

echo %nian%年%yue%月%ri%日 %s:~-2%:%f:~-2% >>C:\test\test.txt
::start notepad.exe C:\test\test.txt

at /d /y
at %s:~-2%:%f:~-2% /interactive  C:\test\new.vbs
::pause
::exit
new.vbs
set Cleaner=createobject("wscript.shell")
Cleaner.run "cmd /c C:\test\new.bat",vbhide
[ Last edited by kyqm on 2009-1-14 at 14:46 ]

作者: kyqm     时间: 2009-1-5 10:20
不过我设置的步长为1