找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 32178|回复: 9

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

[复制链接]
发表于 2015-2-4 19:13:04 | 显示全部楼层 |阅读模式
不是延迟执行,是在获取的时间上加上几秒,想用AT命令在指定时间(执行后的几秒钟)执行一个程序,at time

就是时间相加
发表于 2015-2-4 21:09:55 | 显示全部楼层
这里有函数库和实际例子,可以参考一下:
http://bbs.bathome.net/thread-3056-1-1.html
发表于 2015-2-4 21:17:09 | 显示全部楼层
回复 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
复制代码
发表于 2015-2-4 21:46:58 | 显示全部楼层
来个当前时间加 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>
复制代码
有更简便的办法,但现在还没完工
发表于 2015-2-4 22:30:19 | 显示全部楼层
  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
复制代码
发表于 2015-2-4 23:56:44 | 显示全部楼层
推广一下,powershell 可以这样:
  1. (Get-Date).AddSeconds(1000) | Get-Date -Format 'hh:mm:ss'
复制代码
发表于 2015-2-5 01:45:58 | 显示全部楼层
  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技术 +2 收起 理由
李安阳 + 1 好厉害的样子。
CrLf + 1 getTime()

查看全部评分

发表于 2015-2-7 15:10:43 | 显示全部楼层
下面的代码是越来越简便,他们既然说了,我就不用了吧,其实你为什么不在at命令后面直接修改时间呢
 楼主| 发表于 2015-2-8 12:32:47 | 显示全部楼层
回复 5# apang


    如果不精确到秒,以分钟为单位相加怎么弄?代码会不会简单些?
发表于 2015-2-27 07:56:30 | 显示全部楼层
出現秒數也太細膩了吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 15:23 , Processed in 0.019634 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表