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

[日期时间] 批处理怎么在获取的时间上加上几秒?

不是延迟执行,是在获取的时间上加上几秒,想用AT命令在指定时间(执行后的几秒钟)执行一个程序,at time

就是时间相加
学习计算机技术

这里有函数库和实际例子,可以参考一下:
http://bbs.bathome.net/thread-3056-1-1.html

TOP

回复 1# gd6570
  1. @echo off
  2. set /p n=请输入要累加的秒数:
  3. >gettime.vbs echo dim t,h,m,s
  4. >>gettime.vbs echo t=Hour(Now)*3600+Minute(Now)*60+Second(Now)+%n%
  5. >>gettime.vbs echo h=t\3600
  6. >>gettime.vbs echo m=(t mod 3600)\60
  7. >>gettime.vbs echo s=(t mod 3600) mod 60
  8. >>gettime.vbs echo if (h^<10) then h="0"^&h
  9. >>gettime.vbs echo if (m^<10) then m="0"^&m
  10. >>gettime.vbs echo if (s^<10) then s="0"^&s
  11. >>gettime.vbs echo wscript.echo h^&":"^&m^&":"^&s
  12. for /f %%a in ('cscript /nologo gettime.vbs') do (set "gtime=%%a")
  13. del gettime.vbs /f /q
  14. echo 当前时间为%time:~0,8%
  15. echo 累加%n%秒后的时间为%gtime%
  16. pause
复制代码

TOP

来个当前时间加 100 秒的,话说写这么长和纯批比完全没优势了的...
  1. <!-- : www.bathome.net
  2. @echo off
  3. for /f "delims=" %%a in ('echo %time:~,8% ^| mshta "file://%~0"') do echo %%a
  4. pause&exit
  5. -->
  6. <script language=vbs>
  7. Set fso = CreateObject("Scripting.FileSystemObject")
  8. t = fso.GetStandardStream(0).ReadAll
  9. t = DateAdd("s",100,CDate(t))
  10. t = Hour(t) & ":" & Right("0" & Minute(t), 2) & ":" & Right("0" & Second(t), 2)
  11. fso.GetStandardStream(1).Write t
  12. close
  13. </script>
复制代码
有更简便的办法,但现在还没完工

TOP

  1. @echo off
  2. set n=5
  3. set t=%time: =0%
  4. set /a s=n+(1%t:~,2%-100)*3600+(1%t:~3,2%-100)*60+1%t:~6,2%-100
  5. set /a hh=s/3600%%24+100,mm=s%%3600/60+100,ss=s%%60+100
  6. set "newTime=%hh:~1%:%mm:~1%:%ss:~1%"
  7. echo,%newTime%
  8. pause
复制代码

TOP

推广一下,powershell 可以这样:
  1. (Get-Date).AddSeconds(1000) | Get-Date -Format 'hh:mm:ss'
复制代码

TOP

  1. @if(0)==(0) echo off
  2. CScript -NoLogo -E:JScript %0
  3. pause & exit
  4. @end
  5. var t = new Date(new Date().getTime()+5000);
  6. var reg = /((\d{1,2}:){2}\d{1,2})/g;
  7. t.toLocaleString().replace(reg, function(a,b){WSH.echo(b)});
复制代码
2

评分人数

TOP

下面的代码是越来越简便,他们既然说了,我就不用了吧,其实你为什么不在at命令后面直接修改时间呢

TOP

回复 5# apang


    如果不精确到秒,以分钟为单位相加怎么弄?代码会不会简单些?
学习计算机技术

TOP

出現秒數也太細膩了吧?

TOP

返回列表