标题: [特效代码] 递减进度条.BAT (疑惑、优化、讨论) [打印本页]
作者: jiavip 时间: 2018-12-29 20:56 标题: 递减进度条.BAT (疑惑、优化、讨论)
- @echo off &mode con cols=90 lines=5 &color 0e
- :da
- set a=%a%■
- set x=%x%─
- set y=%y%─
- set/a b=%b%+1,c=44,d=100
- if /i "%b%"=="%c%" goto run
- set /a f=%c%*%d%
- goto da
- rem 上面这段基本是多余的,其中%a% %x% %y% 完全可以用SET (A X Y) =(■N个数)代替,%C%就是%A%的个数,但为了后续B C D E变量的需要所以改写了代码。
- :run
- cls
- set a=%a:~0,-1%
- set/a e=%e%+1,f-=%d%
- set /a g=%f%/%c%
- @echo 剩余进度 %g%%% %time:~3,-3% ..... &TITLE 剩余进度 %g%%% %time:~3,-3% ...
- @echo ┌%x:~0,-2%┐
- @echo. %a%
- @echo └%y:~0,-2%┘
- if %e% geq %c% goto run2
- ping /n 2 127.1 >nul & goto run
- :run2
- cls
- echo 这里写下你需要的运行代码。。。
- pause>nul
复制代码
如上代码!!!我自己一时兴起写了个递减进度条的BAT 脚本。遇到一些运算困惑需要大牛们优化解答。
如代码中 A 标签是设置窗口中 A X Y 显示的宽度和一些在:RUN标签中运算里需要的变量。
先代码中不足的是,窗口只能注定延迟%C%的变量秒数,不能自定义任意延迟时间,虽然PING /N (N数)可以设定预期延迟。
但在我看来效果不够理想,因为我想保持窗口能随时保持%time:~3,-3%每秒刷新。
如果脚本显示窗口设定的是33或任意个递减数,而设定的延迟是10秒或10分钟,
那么脚本该如何按照比例递减进度条(递进也是一个样)就是按照延迟比例来递减或递进,
就拿33个显示条延迟10来比喻吧!时间延迟到5秒的时候进度条递减了16个或17个,该如何写他的运算方式?
求:各路大牛和管理,给个意见、讨论、看法、或范本。
作者: ivor 时间: 2018-12-29 21:55
复制代码
又研究花里胡哨的,重复造轮子,剩下时间还不如深入研究powershell,或者喝杯☕️,做更多有意义的作品。
作者: jiavip 时间: 2018-12-29 22:00
没人愿意解答吗?
困惑就是一个运算比例问题!
特定的显示条,按照延迟时间的比例,相应减少。
我已经写出了按照比例减少显示数目和比例的条目,
现在就卡在延迟比例的运算上!
而且还要求窗口能每秒刷新实时秒数时间。
我自己已经有了一些初步思路,曾经想过用CALL 调用显示。
然后再通过一些复合运算,得出相应的显示效果!
但最终卡在,判断时间和显示个数的比例上。
最重要的还是,窗口要每秒实时刷新,而进度条的比例要正常显示!
作者: yhcfsr 时间: 2018-12-29 22:24
回复 2# ivor
进度条就是个鸡肋,严重影响效率
作者: flashercs 时间: 2018-12-29 22:33
本帖最后由 flashercs 于 2018-12-29 22:40 编辑
进度条长度/进度条递减step=总共消耗时间/递减interval时间
length/step=time/interval
所以step=length*interval/time
这里interval是1秒,因为每秒都显示时间;
所以step=length/time
若 length=200个字符,time=40s
那么step=5个字符.
取整数
作者: jiavip 时间: 2018-12-29 23:26
回复 4# yhcfsr
我知道是鸡肋,那脚本是我写着玩的,目前来说暂时没有任何实际应用的案例!
我也知道那是很鸡肋的做法,但有时候我们写代码需要的是一种视野和思路!
但其实我想讨论的核心是,BAT脚本比例的换算比,该如何表达!
就如同:10除以3是永远除不尽的,但该怎么样用一种BAT语法表达出合理的,四舍五入的运算方式。
往往我在写代码的时候会套用很多不同的运算、方式、表达、思路。
我在遇到困境不是用一句鸡肋去回避。而是想知道这种语法能支撑起多大的运算范围!
我们在写代码的时候,在不依靠第三方工具和语言的情况下,该如何尽善的去发现出语法的限位和BUG!
有点钻牛角尖的意思吧,但终归是讨论,能得到解答固然是最好!
得不到解答其实也无害。但在我看来不是少了一个脚本问题,而是少了一个视野宽度,思维界限。
重申:这是讨论帖!
作者: smss 时间: 2019-1-1 19:06
复制代码
来源于网络
作者: 523066680 时间: 2019-1-1 20:35
淡定淡定,我以前也是玩这个开始学的,没什么人说我反而都是夸的。
主要还是时代的关系,那时候精批处理的人不多。
现在你学批处理就有些不太合时宜,坛友的劝退对你是有好处的,批处理性价比低,换了吧。
作者: 523066680 时间: 2019-1-1 20:49
本帖最后由 523066680 于 2019-1-1 20:59 编辑
我就喜欢花里胡哨的东西
今年没什么新花样,过年再折腾一波,好在没什么人阻止我。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |