[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 如何用bat比较时间

比如现在的时间是17:18  就是用time/t 可以得到
然后我只要看 分钟(18)  
分钟<30  显示 17:30
分钟>=30 显示 18:00

可不可以用bath 来做? 谢谢

[ 本帖最后由 zsfeng 于 2009-2-24 11:51 编辑 ]

看到2个把时间+10分钟的 但是不会修改
  1. @echo off
  2. set aDate=%time: =%
  3. for /f "tokens=1-4 delims=:." %%i in ("%aDate%") do set/a n1=100%%i%%100,n2=100%%j%%100+10,n3=100%%k%%100,n4=100%%l%%100
  4. if %n2% gtr 59 set/a n1+=1
  5. set/a h2=n2%%60,n1=n1%%24
  6. echo %aDate% 10分钟后时间  %n1%:%h2%:%n3%:%n4%
  7. echo\&pause&exit
复制代码
  1. @echo off
  2. :lp
  3. set /a t=%time:~,2%,m=1%time:~3,2%%%100+10
  4. set "s=%time:~6%"
  5. if %m% geq 60 set /a m-=60,t+=1
  6. if %t% geq 24 set /a t-=24
  7. set /p=%t%:%m%:%s%<nul
  8. for /l %%i in (1,1,20) do set /p=<nul
  9. goto lp
复制代码

TOP

  1. @echo off
  2. set /a t=1%time:~3,2%%%100
  3. if %t% geq 30 (
  4.    echo 18:00
  5.    ) else (
  6.    echo 17:30
  7. )
  8. pause>nul
复制代码
***共同提高***

TOP

谢谢 我的意思是这样
  1. @echo off
  2. set /a t=%time:~,2%,m=1%time:~3,2%%%100
  3. if %m% geq 30 set /a t+=1 (
  4. echo %t%:00
  5. ) else (
  6. echo %t%:30)
  7. @pause
复制代码
但是这样 会出现2个 结果 好像那个else 没有起到作用

TOP

回复 4楼 的帖子

if命令的语法错了
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

请问该怎么改 我试了把 set /a t+=1 放到括号里面 好像结果就不对了

TOP

回复 6楼 的帖子

可到http://bbs.bathome.net/thread-2189-1-1.html学习一下变量延迟扩展的讲解
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表