Board logo

标题: [系统相关] [巳解决]请教批处理倒计时进度条问题 [打印本页]

作者: whwyd    时间: 2015-3-25 16:15     标题: [巳解决]请教批处理倒计时进度条问题

本帖最后由 whwyd 于 2015-3-26 12:58 编辑

下面这段批处理,进度条只能往前走,▉是一秒一个,一直到60秒60个为止,作为倒计时不太合适,我想让它一开始就有60个▉,然后一秒减一个到0秒全部减完,也就是让进度条倒着走,下面这段程序怎么改啊?请高手指教?
  1. @echo off&mode con cols=114 lines=6
  2. color 70&title 倒计时60秒
  3. :star
  4. set /a work=0,n=0,mo=0,number=0,all=60
  5. set num=
  6. set time=%all%
  7. :check
  8. if %number% GTR %mo% set num=%num%▉&set /a mo=%mo%+1&goto check
  9. cls&echo.
  10. echo                                              ★倒计时: %time% 秒
  11. echo.
  12. CurS /crv 0
  13. if not "%num%"=="" echo       %num%
  14. if not "%num%"=="" echo       %num%
  15. if %time%==0 pause>nul&goto start
  16. ping -n 2 127.1>nul
  17. set /a n=%n%+1
  18. set /a time=%all%-%n%
  19. set /a work=(%n%)*100/(%all%)
  20. set /a number=%work%/2
  21. set /a number=%number%+1
  22. goto check
复制代码

作者: pcl_test    时间: 2015-3-25 18:59

本帖最后由 pcl_test 于 2015-3-26 13:07 编辑

回复 1# whwyd
  1. @echo off & setlocal enabledelayedexpansion
  2. mode con cols=132 lines=2
  3. title 倒计时60秒
  4. color 70
  5. set t=60
  6. for /l %%a in (0 1 60) do set s=!s!▉
  7. :begin
  8. cls
  9. echo, !s:~,%t%!(剩余%t%秒)
  10. set /a t-=1
  11. ping -n 2 0 >nul
  12. if %t% lss 0 pause >nul & exit
  13. goto begin
复制代码

作者: whwyd    时间: 2015-3-25 21:26

谢谢pcl_test,确实不错,达到了要求,高手。
作者: whwyd    时间: 2015-3-26 08:40

pcl_test您好,我想把这句echo  !s:~,%t%!(剩余%t%秒)中的(剩余%t%秒)去掉,出现ECHO 处于关闭状态,怎么解决?谢谢!
作者: pcl_test    时间: 2015-3-26 10:26

本帖最后由 pcl_test 于 2017-4-10 07:19 编辑

echo, !s:~,%t%!
回复 5# whwyd
作者: whwyd    时间: 2015-3-26 12:58

非常完美,太感谢pcl_test 了。




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