Board logo

标题: [日期时间] 批处理倒计时 [打印本页]

作者: plp626    时间: 2012-4-21 17:08     标题: 批处理倒计时

本帖最后由 plp626 于 2012-4-21 17:11 编辑
  1. @echo off||倒计时;
  2. :: 备份自用 code by plp
  3. if "%1"==":timeout" goto%1
  4. start/b %~fs0 :timeout "2015-1-1"
  5. cmd /k "prompt=-$g$s&echo 获取帮助请键入 help "
  6. exit
  7. :timeout
  8. set dates=%date%
  9. call edate "%dates:~0,10%" "%~2" xx
  10. set/a xx-=1
  11. :lp
  12. call:time2i "%time%" i&call:i2time 8640000-i hfs
  13. title 现在距离 %~2 还有 %xx%天 零 %hfs% 秒
  14. goto:lp
  15. :time2i <time> <rt>
  16. setlocal&set t=%~1
  17. set/a w=1%t:~-2%,s=1%t:~-5,2%,f=1%t:~-8,2%,h=1%t:~-11,2%
  18. set/a w-=100,s-=100,f-=100,h-=100,i=h*3600+f*60+s,i=i*100+w
  19. endlocal&(if %2.==. (echo %i%)else set %2=%i%)&goto:eof
  20. :i2time <i> <hour> <minute> <second> <perseconde>
  21. setlocal&set/a t=%1
  22. set/a w=t%%100,t/=100,h=t/3600,t%%=3600,f=t/60,t%%=60,s=t
  23. for %%a in (%w%.w,%s%.s,%f%.f,%h%.h)do set %%~xa=0%%~na
  24. set ret=%.h:~-2%:%.f:~-2%:%.s:~-2%.%.w:~-2%
  25. endlocal&(if %2.==. (%ret%)else set %2=%ret%)&goto:eof
复制代码

作者: applba    时间: 2012-4-21 19:34

%XX%溢出了
作者: cjiabing    时间: 2012-4-21 20:03

  1. call edate "%dates:~0,10%" "%~2" xx
复制代码
找不到edate
复杂多!~
作者: 学无止境    时间: 2012-10-6 00:56

溢出!!!
作者: plp626    时间: 2012-10-6 12:19

回复 3# cjiabing
  1.     @echo off||倒计时;
  2. :: 备份自用 code by plp
  3. if "%1"==":timeout" (goto%1)else start/b %~fs0 :timeout "2015-1-1"
  4. cmd /k "prompt=-$g$s&echo 获取帮助请键入 help "
  5. exit
  6. :timeout
  7. set dates=%date%
  8. call:edate "%dates:~0,10%" "%~2" xx
  9. set/a xx-=1
  10. :lp
  11. call:time2i "%time%" i&call:i2time 8640000-i hfs
  12. title 现在距离 %~2 还有 %xx%天 零 %hfs% 秒
  13. goto:lp
  14. rem ------------------------- sub ----------------------------
  15. :time2i <time> <rt>
  16. setlocal&set t=%~1
  17. set/a w=1%t:~-2%,s=1%t:~-5,2%,f=1%t:~-8,2%,h=1%t:~-11,2%
  18. set/a w-=100,s-=100,f-=100,h-=100,i=h*3600+f*60+s,i=i*100+w
  19. endlocal&(if %2.==. (echo %i%)else set %2=%i%)&goto:eof
  20. :i2time <i> <hour> <minute> <second> <perseconde>
  21. setlocal&set/a t=%1
  22. set/a w=t%%100,t/=100,h=t/3600,t%%=3600,f=t/60,t%%=60,s=t
  23. for %%a in (%w%.w,%s%.s,%f%.f,%h%.h)do set %%~xa=0%%~na
  24. set ret=%.h:~-2%:%.f:~-2%:%.s:~-2%.%.w:~-2%
  25. endlocal&(if %2.==. (%ret%)else set %2=%ret%)&goto:eof
  26. :edate <"DATE1"> <"DATE2"> <RetVarName>
  27. setlocal
  28. set d1=%~1&set d2=%~2
  29. set d1=%d1:~0,10%&set d2=%d2:~0,10%
  30. set d1=%d1:-= %&set d2=%d2:-= %
  31. call:date2i %d1: 0= % i1
  32. call:date2i %d2: 0= % i2
  33. set/a c=i2-i1
  34. endlocal&(if %3.==. (echo %c%) else set %3=%c%)&goto:eof
  35. :date2i <year> <month> <day> <RetVarName>
  36. setlocal&set/a y=%1,m=%2,d=%3
  37. set/am+=9,m%%=12,y-=m/10,i=365*y+y/4-y/100+y/400+(m*153+2)/5+d-1
  38. endlocal&(if %4.==. (echo %i%)else set %4=%i%)&goto:eof
复制代码

作者: 111    时间: 2013-3-10 20:11

  1. @echo off
  2. title 定时提醒器正在运行……
  3. :ma
  4. if '%1'=='%time:~0,2%:%time:~3,2%:%time:~6,2%' goto nlxx
  5. goto ma
  6. :nlxx
  7. title 闹铃响了!!!!!!
  8. :xiang
  9. nircmd beep 1000 200
  10. goto xiang
复制代码
一样




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2