- @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个,该如何写他的运算方式?
求:各路大牛和管理,给个意见、讨论、看法、或范本。 |