bat进度条

@echo off&setLocal EnableDelayedExpansion
echo 进度条
chcp 65001
color 08
cls

goto :main
rem 显示进程
:runProgress
    set /a rPgi=100 * %1 / %2
    if !rPgi! GTR 100 set rPgi=100
    set /a rPgN=%rPgi%/2
    set "spinner=/-\l"
    set /a index=%1 %% 4
    set "dian=...."
    set "spin=!spinner:~%index%,1!"
    set "spl=!dian:~,%index%!"
    set cmplt=■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    set uncmp=□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
    call:BpByStr !cmplt:~0,%rPgN%!!uncmp:~%rPgN%! %rPgi%%%%%  %1/%2  !spin!  %3  Loading!spl!
goto :eof

rem 重复显示删除
:BpByStr
  if "%bp%"=="" call:b bp
  set "BpByStrold=%*"
  set /p=%bp%%bp%%bp%%bp%%bp%<nul
  set "BpByStr=%BpByStrold%"
  set /p=%BpByStr%<nul
goto :eof

rem 退格
:b
    for /F %%a in ('"prompt $h&for %%b in (1) do rem"') do (
        Set "%~1=%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a")
goto :eof

:main

set "DesktopPath=%USERPROFILE%\Desktop"

cd "%DesktopPath%"
echo. > numbers.txt

set count=10000

for /L %%i in (0, 1, %count%) do (
    call :runProgress %%i %count% %name%
    echo %%i >> numbers.txt
)
pause >nul

cmd脚本实现了进度条功能,通过main子函数可以灵活与别的脚本在内外结合,示例是在桌面新建文本输出从0到10000的数。进度条有简单的动画功能,并会显示百分比和当前处理项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值