@echo off
:: 模拟进度,有剩余时间、已完成进度、进度条的显示
:: code by bg 2006-10-8 CMD@XP
color 1f
title.
mode con lines=10
rem 进度条 ▉▉▉▉▉
set work=0
set n=0
set mo=0
set number=0
rem all是总数
set all=60
set time=%all%
:show
:check
if %number% GTR %mo% set num=%num%▉&set /a mo=%mo%+1&goto check
:2
cls
echo 进度: %n% / %all% 剩余时间:%time%秒
echo.
echo.
echo 完成 %work% %%%
echo.
if not "%num%"=="" echo %num%
if not "%num%"=="" echo %num%
if %work%==100 goto end
ping 127.1 -n 1 >nul
set /a n=%n%+1
set /a time=%all%-%n%
set /a work=(%n%)*100/(%all%)
set /a number=%work%/3
set /a number=%number%+1
goto show
endlocal
:end
endlocal
pause>nul
请大家帮我分析一下该批处理的思路,实在看不懂,上面的show标签和2标签都没内容啊,为什么呢?check标签在后面的代码中也没看到被引用,那它怎么会被执行呢?请大家帮我分析一下,多谢多谢了!!!作者: zh159 时间: 2007-3-18 12:34 :check
if %number% GTR %mo% set num=%num%▉&set /a mo=%mo%+1&goto check
[ Last edited by zh159 on 2007-3-18 at 12:04 AM ]作者: zhoushijay 时间: 2007-3-18 13:02 @echo off
color 1f \\设置背景颜色
title. \\标题:
mode con lines=10 \\窗口大小
rem 进度条 ▉▉▉▉▉ \\注释,多命令无作用
set work=0
set n=0
set mo=0
set number=0 \\此处为设置一系列变量
rem all是总数
set all=60
set time=%all%
:show
:check
if %number% GTR %mo% set num=%num%▉&set /a mo=%mo%+1&goto check \\如果%number% 大于 %mo% 则设置变量num=%num%▉(注意这里,因为变量num的值为=%num%▉ 所以到第二次循环到这里是后num的值就会变成=%num%▉▉ 第3次为=%num%▉▉▉ )
:2