Board logo

标题: 原创的模拟C盘检测进度条(应用截取字符和set /a命令) [打印本页]

作者: bat-zw     时间: 2008-3-9 07:38    标题: 原创的模拟C盘检测进度条(应用截取字符和set /a命令)

原代码如下,有兴趣的朋友可以一起来研究下: @echo off&&mode con cols=115 lines=8&setlocal EnableDelayedExpansion color 9f&echo.&echo 5秒后将对C盘进行快速检测&ping -n 3 127.1 >nul echo.&echo  经检测C盘空间总大小为819200kb,预计时间为80秒&ping -n 4 127.1 >nul set u=■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ set se=-1 set b=0 for /l %%a in (1,1,50) do ( for /l %%s in (0,1,15) do ( call :show %%a ) ) cls&echo.&echo 已检测:819200kb,剩余:0kb                      已用时间80秒,剩余时间0秒 echo ____________________________________________________________________________________________________ echo !u:~0,50!已完成100% echo ____________________________________________________________________________________________________ ping -n 3 127.1 >nul&cls&echo.&echo  检测成功完成,请按键退出。 pause >nul goto :eof :show set /a b+=1&set /a c=800-b&set /a m=s+1&set /a n=b/10&set /a k=80-n&set /a p=b*1024&set /a q=819200-p&set /a r=b/8 set /a se+=1 if %se% gtr 9 goto 2 goto 1 :2 set se=0 :1 set /a es=9-se color %es%%se% cls&echo.&echo 己检测:%p%kb,剩余:%q%kb                      己用时间%n%秒,剩余时间%k%秒 echo ____________________________________________________________________________________________________ echo !u:~0,%1!己完成%r%%%&ping -n 1 127.1 >nul&cls&goto :eof echo ____________________________________________________________________________________________________ [ Last edited by zw19750516 on 2008-3-10 at 04:09 AM ]

作者: suntb     时间: 2008-3-9 11:45
还不错 不过屏幕色彩没必要变来变去的 全程黑底白字就好了

作者: faultcode     时间: 2008-3-9 16:03
很好 很强大~呵呵

作者: lee928     时间: 2008-3-9 21:02
不错!如果能真正利用到拷贝文件中就更好了!

作者: bat-zw     时间: 2008-3-9 21:28
关于这个我已经有了思路了,正在实现中。。。。。。。。。

作者: haiou327     时间: 2008-3-10 02:37
Originally posted by suntb at 2008-3-9 11:45 AM: 还不错 不过屏幕色彩没必要变来变去的 全程黑底白字就好了
修改了一下,借用楼主的脚本,按你的要求全程黑底白字. @echo off&&mode con cols=115 lines=8&setlocal EnableDelayedExpansion color 0f&echo.&echo 5秒后将对C盘进行快速检测&ping -n 2 127.1 >nul echo.&echo  经检测C盘空间总大小为819200kb,预计时间为80秒&ping -n 2 127.1 >nul set se=0123456789abcdef set u=■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ set se=0123456789abcdef set b=0 for /l %%a in (1,1,50) do ( for /l %%s in (0,1,15) do ( call :show %%a %%s ) ) cls&echo.&echo 已检测:819200kb,剩余:0kb                      已用时间80秒,剩余时间0秒 echo ____________________________________________________________________________________________________ echo !u:~0,50!已完成100% echo ____________________________________________________________________________________________________ ping -n 3 127.1 >nul&cls&echo.&echo  检测成功完成,请按键退出。 pause >nul goto :eof :show set /a b+=1&set /a c=800-b&set /a m=s+1&set /a n=b/10&set /a k=80-n&set /a p=b*1024&set /a q=819200-p&set /a r=b/8 color 0f cls&echo.&echo 己检测:%p%kb,剩余:%q%kb                      己用时间%n%秒,剩余时间%k%秒 echo ____________________________________________________________________________________________________ echo !u:~0,%1!己完成%r%%%&ping -n 1 127.1 >nul&cls&goto :eof echo ____________________________________________________________________________________________________ [ Last edited by haiou327 on 2008-3-10 at 02:43 AM ]

作者: zh159     时间: 2008-3-10 11:28
对于批处理复制文件过程模拟进度条,基本上是徒劳;除了copy有个/z可以显示每个文件复制的百分比

作者: txiaowen     时间: 2008-3-10 16:04
好帖子啊,支持

作者: bat-zw     时间: 2008-3-11 13:14
在文件开头加入title命令郊果更好: @echo off&&mode con cols=115 lines=8&setlocal EnableDelayedExpansion title 磁盘快速检测程序 .....................................................

作者: woo88     时间: 2008-3-15 01:30
不错

作者: rzkmssj     时间: 2008-10-29 12:43
闪的不行....给你修改了一处地方: set /a es=9-se color %es%%se% cls&echo.&echo 己检测:%p%kb,剩余:%q%kb    红色代码换成下面的就不闪咯! color 9f                [ Last edited by rzkmssj on 2008-10-29 at 12:46 ]