Windows批处理文件实现无闪烁增量进度条的方案咨询
批处理无闪烁增量进度条实现方案
核心优化点
- 移除频繁全局清屏的
cls操作,改用ANSI转义序列控制光标位置,仅覆盖更新进度条行,彻底解决窗口闪烁问题 - 拆分进度更新逻辑为独立可调用子函数,每完成一段业务任务手动调用即可推进进度,完全匹配实际业务执行速度,不会出现空转假进度
- 移除所有虚假等待逻辑,不会额外拖慢业务执行效率
完整可运行代码
@echo off & setlocal enabledelayedexpansion :: 初始化窗口配置,可根据需要调整宽高 mode con: cols=70 lines=6 & color f0 call :setESC chcp 65001 >nul :: --------------------------配置项-------------------------- :: 你的业务任务总步数,按照实际要执行的任务数量修改 set totalStep=20 :: 进度条显示的总长度(字符数) set barLength=20 :: ---------------------------------------------------------- set "progressBar=" set /a currentStep=0 :: 输出固定头部,仅执行一次,后续不会被清除 echo. echo 请等待 - 正在收集系统信息... echo. echo ┌──────────────────────────────────────────────────┐ echo │ !progressBar! !currentStep!/!totalStep! │ echo └──────────────────────────────────────────────────┘ :: 光标上移2行,定位到进度条所在行的开头 echo !ESC
