win脚本bat 也能完的很精彩之一进度条 - 企业网管讨论专版 - diskgenius专业版破解
本文网址:http://bbs.bitscn.com/85671 复制
以下应一网友要求写的进度条配合BAT脚本批量执行程序时给出程序的执行进度。
同时变相的处理在脚本中遇到的小数问题,我在脚本中做的不够精确,如果需要更高的精确度,可以多添加几次循环。回复该贴中提出的小数问题 http://bbs.bitscn.com/85384
脚本内容:
@echo off
title 程序制作"怕瓦落地".欢迎关注www.BitsCN.com
rem 说明:
rem 变量b为平均值的整数部分,变量c为平均值的小数部分,变量hs表示需要执行的命令总数并加1,防止程序进入死锁.
rem 如果没有小数部分,请把变量c赋零值
rem 变量pjump默认为1表示在编辑note.txt文件时第一行必须为空.
color 0a
set b=1
set c=0
set /a hs=81
set pjump=1
set a=■
set /a zs=%b%
set /a g=%c%
rem 上面这部分没什么解释的,是主要变量的相关说明,及赋值。
:pstart
rem 进度条代码开始
cls
set a=%a%■
echo.
echo 程序正在安装中,请等待
echo ┌─────────────────────────────────────┐
echo %a% %zs%.%g%%%
echo └─────────────────────────────────────┘
rem 进度条代码结束
rem 上面这部分是在该脚本执行中所看到的进度条是如何前进的。
rem 下面这行是从文件note.txt中读取预先编辑好的执行命令和参数,关于for命令的解释请参考命令本身帮助系统.
for /f "delims=, skip=%pjump% tokens=2" %%m in (note.txt) do set pcmd=%%m & goto jisuo
:jisuo
echo "正在执行%pcmd%程序"
%pcmd%
set /a pjump=%pjump%+1
if %pjump%==%hs% goto pexit ::该句是判断文件note.txt中有多少条需要执行的命令,在脚本的开始部分有说明,需要人为的指出,主要的作用是防止脚本在运行中出现意外,或者进入死锁.可有可无.
set /a zs=%zs%+%b%
set /a d=%d%+c
set e=%d%
set g=%d%
if %d% geq 10 goto xiaoshu
goto pstart
rem 上面这段是是处理百分比中如果出现小数,也进行粗略的计算,如果想获得更高的精确度可以按照下面这段代码去扩展程序.
:xiaoshu
set g=%e:~-1% ::扩展变量e 并取变量值的最后一个字符并赋值给变量g,如果变量e此时的值为15,那么此时g得到的值是5
set /a zs=%zs%+1
set /a d=%g%
goto pstart
rem 上面这段是计算小数部分当小数部分垒加和大于等于10时才会执行,
:pexit
exit
总的来说该脚本的运行思路是读取note.txt中预先编辑的命令和参数并给予执行,每执行完一条命令都会在进度条上反映出执行进度(该脚本只能处理已知的进度并加已表现).
关于在进度条中出现的小数.例如 15.3%. bat脚本中,偶还没有找到能处理小数的命令,所以只能变相的处理了
处理方法是,把一个小数拆分成整数部分和小数部分并分别加以计算
在该脚本中但小数部分垒加和大于等于10时就会向整数部分进1 并做相关处理步骤.脚本中用朱砂红标记出来的就是.
然后把两个部分的计算结果在组合到一起.其实是通过输出命令来做的用深绿色标记出来的就是.并没有相关的组合表达式来做这个步骤,因为不需要代入计算.只是用于显示,足已.
该脚本代码不长但用到的变量较多,应该优化的可能以减少多的变量.请仔细阅读应该不难理解.欢迎交流.
待执行命令文件(以下文件内容为事例文件),注意:在测试环境中,复制下面的内容保存为note.txt文件并放在脚本同一目录即可。
【转自bbs.bitsCN.com】
更多阅读
MFC中进度条控件的使用方法 mfc进度条控件使用
MFC中进度条控件的使用方法——简介进度条控件是程序开发中基础控件之一,常用于显示程序的进度。在进行程序安装、文件传输时经常用到。其用法也比较简单固定。今天就和大家分享一下其简单的使用方法吧。^_^MFC中进度条控件的使用方
没有烘焙经验,也能做的小饼干------香葱苏打饼干 香葱苏打饼干
5月手把手diy课程5月免费课没有烘焙经验,也能做的小饼干------香葱苏打饼干原料:牛奶56ml酵母约1克低筋面粉100克 盐1克 苏打粉(小苏打)0.5克 干香葱末2克 黄油20克旧帖回顾:18道亲子美食做法:1)将牛奶、酵母、面粉、盐、苏打粉、香
三星I9300刷机之详细教程-小白也能看的懂得教程 精 钩针小白的详细教程
三星I9300刷机之详细教程-小白也能看的懂得教程 精——简介刷机必读:9300版本区别来说,亚太版、港版、欧版、联通定制版、国行版是可以通刷ROM的,I9308与I939则不可以刷I9300的ROM刷机前,请务必备份EFS,以防出现基带未知,当然也可以刷后
香辣土豆烧鸡块 厨房新手也可以做的很好吃的家常菜 家常菜土豆片炒肉
昨天是六一儿童节,灰被特批放了一天假来陪女儿,这么多年来,我这个过期儿童沾了新鲜儿童的光,可以在六一儿童节这天放假,开心~~不过女儿还小,还不懂六一儿童节的含义,事实上对她来说,每天都是儿童节,无忧无虑的童年,尽管知道充满人间烟火的日
减肥一族也能大快朵颐的辣炒田鸡 梦幻西游大快朵颐
其实以前看到田鸡的时候我也不敢动手去做,特别是看到还带着皮的我会退避三舍,总感觉肉肉的东西有点儿恐怖,不过眼不见为净,人家做好的除了带皮的我也会吃的很香哈,哈哈。突然觉得好怀念小时候俺老姐的同学经常晚上去水沟里逮这个,第二天