需求:
需要用批处理写一段进度条来提醒用户当前任务的进度。
需求分析:
用批处理实现进度条的编写,基本思路就是利用循环来打印一个一个的「进度条」字符串「▉」
这样一个小方块一个接着一个打印出来就是进度条了,比如▉▉▉▉▉▉▉▉▉是不是像进度条?
另外循环速度太快,一下全部打印出来,基本看不到进度条的进度就完成了,所以,每次打印一下延时一下,而批处理里面延时常用做法就是ping 127.0.0.1
为了让进度条更美观,需要设置下背景和前景色。
代码编写:
通过以上需求分析后,代码编写就不难了。
效果预览图:
完整批处理代码:
@echo off :: code by tao0610 2006-12-5 set a=▉&set b=69&set c=%% set space= :start set a=%a%▉ set/a b-=2 set/a num+=3 if %num%==12 set/a b-=1 call set space=%%space:~0,%b%%% if %num% gtr 100 set num=天下网吧提醒你_芭比Q啦&&set c= echo. echo. color fc echo *网吧游戏修复进度条...... echo ┏─────────────────────────────────────┓ echo │%a%%space%%num%%c%│ echo ┗─────────────────────────────────────┛ ping/n 2 127.1>nul if "%num%" neq "天下网吧提醒你_芭比Q啦" cls&goto start for /l %%a in (1,1,10) do color cf&ping/n 1 127.1>nul&color fc&ping/n 1 127.1>nul
总结:
上面的进度条只是最简单的不带功能的进度条,如果需要执行一些列比较复杂的操作,比如做网吧修复游戏功能,需要全盘扫描某个文件夹,如果有这个文件夹再从正常的游戏文件夹把所有文件复制到扫描到的错误的这个游戏文件夹,这一系列的操作,咱们可以设置每次扫描完一个盘进度条就前进10%,到最后的复制文件,复制完成后才到100%,这样进度条才有灵魂!