[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[特效代码] [已解决]批处理怎样模拟进度条?

我想做一个进度条,但不想用到cls命令也不想用第三方工具还要支持任意长宽的屏幕,最好做成每一个百分点都有变化显示。
请各位想想法子

[ 本帖最后由 lincc0519 于 2010-1-4 21:38 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

  1. @echo off&setlocal enabledelayedexpansion
  2. set /p total=请输入总循环次数:
  3. for /f "tokens=2 delims= " %%i in ('mode ^| findstr "列"') do set /a cols=%%i-4
  4. (set /a rate=0)&(set lastPct=)
  5. for /l %%i in (1,1,!total!) do (
  6.   ping -n 1 127.1>nul & rem 这里是基本操作
  7.   set /a pct=%%i*100/total+1000
  8.   if "!pct:~0,2!" equ "10" (set pct= !pct:~2!) else set "pct=!pct:~1!"
  9.   set /a n=%%i*cols / total
  10.   if !n! gtr !rate! (call :reflesh) else if "!lastPct!" neq "!pct!" (call :reflesh)
  11. )
  12. echo\&pause&exit /b
  13. :reflesh
  14. title !pct!%%
  15. (for /l %%j in (1,1,!rate!) do set /p=<nul)&(set /p=<nul)
  16. (set /p=!pct!%%<nul)&(for /l %%j in (1,1,!rate!) do set /p=^><nul)&(set /a rate=n)
  17. (set lastPct=!pct!)
  18. exit /b
复制代码

[ 本帖最后由 neorobin 于 2009-12-28 16:01 编辑 ]
1

评分人数

TOP

进度条的意义在于展示某个进程的运行进度
而非定时画一些进度条符号
否则它就只能沦为一种好看的特效
而没有任何实际意义

所以进度条程序的关键
还在于如何获知程序的运行进度

TOP

谢谢2楼的neorobin
2楼的代码不是我最终想要的,有时间我自己也写一个回到上面(代码支持的宽很长,我想控制在15个单字符内)
3楼说的就不对了,没有人会花时间做那个跟程序进程没关系的进度条。

TOP

返回列表