[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[特效代码] 递减进度条.BAT (疑惑、优化、讨论)

  1. @echo off &mode con cols=90 lines=5 &color 0e
  2. :da
  3. set a=%a%■
  4. set x=%x%─
  5. set y=%y%─
  6. set/a b=%b%+1,c=44,d=100
  7. if /i "%b%"=="%c%" goto run
  8. set /a f=%c%*%d%
  9. goto da
  10. rem 上面这段基本是多余的,其中%a% %x% %y% 完全可以用SET (A X Y) =(■N个数)代替,%C%就是%A%的个数,但为了后续B C D E变量的需要所以改写了代码。
  11. :run
  12. cls
  13. set a=%a:~0,-1%
  14. set/a e=%e%+1,f-=%d%
  15. set /a g=%f%/%c%
  16. @echo  剩余进度 %g%%%  %time:~3,-3% ..... &TITLE 剩余进度 %g%%%  %time:~3,-3% ...
  17. @echo ┌%x:~0,-2%┐
  18. @echo. %a%
  19. @echo └%y:~0,-2%┘
  20. if %e% geq %c% goto run2
  21. ping /n 2 127.1 >nul & goto run
  22. :run2
  23. cls
  24. echo  这里写下你需要的运行代码。。。
  25. pause>nul
复制代码
如上代码!!!我自己一时兴起写了个递减进度条的BAT 脚本。遇到一些运算困惑需要大牛们优化解答。
如代码中 A 标签是设置窗口中 A X Y 显示的宽度和一些在:RUN标签中运算里需要的变量。
先代码中不足的是,窗口只能注定延迟%C%的变量秒数,不能自定义任意延迟时间,虽然PING /N (N数)可以设定预期延迟。
但在我看来效果不够理想,因为我想保持窗口能随时保持%time:~3,-3%每秒刷新。
如果脚本显示窗口设定的是33或任意个递减数,而设定的延迟是10秒或10分钟,
那么脚本该如何按照比例递减进度条(递进也是一个样)就是按照延迟比例来递减或递进,
就拿33个显示条延迟10来比喻吧!时间延迟到5秒的时候进度条递减了16个或17个,该如何写他的运算方式?
求:各路大牛和管理,给个意见、讨论、看法、或范本。

没人愿意解答吗?
困惑就是一个运算比例问题!
特定的显示条,按照延迟时间的比例,相应减少。
我已经写出了按照比例减少显示数目和比例的条目,
现在就卡在延迟比例的运算上!
而且还要求窗口能每秒刷新实时秒数时间。
我自己已经有了一些初步思路,曾经想过用CALL 调用显示。
然后再通过一些复合运算,得出相应的显示效果!
但最终卡在,判断时间和显示个数的比例上。
最重要的还是,窗口要每秒实时刷新,而进度条的比例要正常显示!

TOP

回复 4# yhcfsr


我知道是鸡肋,那脚本是我写着玩的,目前来说暂时没有任何实际应用的案例!
我也知道那是很鸡肋的做法,但有时候我们写代码需要的是一种视野和思路!
但其实我想讨论的核心是,BAT脚本比例的换算比,该如何表达!
就如同:10除以3是永远除不尽的,但该怎么样用一种BAT语法表达出合理的,四舍五入的运算方式。
往往我在写代码的时候会套用很多不同的运算、方式、表达、思路。
我在遇到困境不是用一句鸡肋去回避。而是想知道这种语法能支撑起多大的运算范围!
我们在写代码的时候,在不依靠第三方工具和语言的情况下,该如何尽善的去发现出语法的限位和BUG!
有点钻牛角尖的意思吧,但终归是讨论,能得到解答固然是最好!
得不到解答其实也无害。但在我看来不是少了一个脚本问题,而是少了一个视野宽度,思维界限。
重申:这是讨论帖!

TOP

返回列表