Board logo

标题: [特效代码] 求批处理进度条 [打印本页]

作者: xiaoguren    时间: 2018-12-26 14:21     标题: 求批处理进度条

进度条,60秒减少一格,10分钟减完
代码如下,怎么调试也不显示进度条
求大神帮忙
  1. @echo off&setlocal enabledelayedexpansion
  2. mode con cols=113 lines=20 &color 9f
  3. set a=■■■■■■■■■■
  4. for /l %%i in (600,-1,1) do (
  5. cls
  6. set /a n=%%i%60
  7. set /a m=60
  8. if !n! geq 60 set /a m-=1
  9. echo After %%i seconds ,start thunder
  10. echo !a:~-%m%!
  11. ping /n 2 127.1 >nul
  12. )
复制代码

作者: 523066680    时间: 2018-12-26 15:54

[attach]11654[/attach]
作者: yhcfsr    时间: 2018-12-26 17:35

  1. @echo off&setlocal enabledelayedexpansion
  2. mode con cols=113 lines=20 &color 9f
  3. set "bar=■■■■■■■■■■"
  4. for /l %%i in (600,-1,0) do (
  5. if %%i neq 600 (set/a "num=%%i%%60")
  6. if defined num if !num! equ 0 set bar=!bar:~,-1!
  7. cls
  8. echo After %%i seconds ,start thunder
  9. echo;!bar!
  10. ping /n 2 127.1 >nul
  11. )
  12. pause
复制代码

作者: SQYSQYSQY    时间: 2019-1-5 22:20

本帖最后由 SQYSQYSQY 于 2019-1-5 22:21 编辑

回复 1# xiaoguren
  1. @echo off&setlocal enabledelayedexpansion
  2. mode con cols=113 lines=20 &color 9f
  3. set "a=■■■■■■■■■■"
  4. for /l %%a in (600 -1 1) do (
  5. set /a "b=(%%a+59)/60"
  6. cls
  7. echo After %%a seconds ,start thunder
  8. for %%b in (!b!) do echo !a:~0,%%b!
  9. ping -n 2 127.1 >nul
  10. )
  11. cls
  12. echo After 0 seconds ,start thunder
  13. pause >nul
复制代码
我调试过的,没问题
作者: Zhou.    时间: 2020-5-12 13:23

我这有一个不用开启变量延迟的方法。
:start
cls
set a=10
set b=■■■■■■■■■■
:jindu
cls
set /a a=a-1
if "%a%"=="9" set b=■■■■■■■■■
if "%a%"=="8" set b=■■■■■■■■
if "%a%"=="7" set b=■■■■■■■
if "%a%"=="6" set b=■■■■■■
if "%a%"=="5" set b=■■■■■
if "%a%"=="4" set b=■■■■
if "%a%"=="3" set b=■■■
if "%a%"=="2" set b=■■
if "%a%"=="1" set b=■
if "%a%"=="0" goto kaishi
echo 还剩%a%秒
echo %b%
ping /n 2 127.0.0.1>nul
goto jindu
已测试,没问题。
作者: Zhou.    时间: 2020-5-12 13:26

回复 5# Zhou.
说错了!
:start
cls
set a=10
set b=■■■■■■■■■■
:jindu
cls
set /a a=a-1
if "%a%"=="9" set b=■■■■■■■■■
if "%a%"=="8" set b=■■■■■■■■
if "%a%"=="7" set b=■■■■■■■
if "%a%"=="6" set b=■■■■■■
if "%a%"=="5" set b=■■■■■
if "%a%"=="4" set b=■■■■
if "%a%"=="3" set b=■■■
if "%a%"=="2" set b=■■
if "%a%"=="1" set b=■
if "%a%"=="0" goto kaishi
echo 还剩%a%秒
echo %b%
ping /n 2 127.0.0.1>nul
goto jindu

:kaishi
echo 成功!
pause
exit
作者: Zhou.    时间: 2020-5-12 13:27

回复 6# Zhou.


    记得前面加上@echo off




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