
遞減進(jìn)度條BAT疑惑優(yōu)化討論
- @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個(gè)數(shù))代替,%C%就是%A%的個(gè)數(shù),但為了后續(xù)B C D E變量的需要所以改寫了代碼。
- :run
- cls
- set a=%a:~0,-1%
- set/a e=%e%+1,f-=%d%
- set /a g=%f%/%c%
- @echo剩余進(jìn)度 %g%%%%time:~3,-3% ..... &TITLE 剩余進(jìn)度 %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這里寫下你需要的運(yùn)行代碼。。。
- pause>nul
nclick="copycode($('code0'));">復(fù)制代碼
如上代碼!!!我自己一時(shí)興起寫了個(gè)遞減進(jìn)度條的BAT 腳本。遇到一些運(yùn)算困惑需要大牛們優(yōu)化解答。如代碼中 A 標(biāo)簽是設(shè)置窗口中 A X Y 顯示的寬度和一些在:RUN標(biāo)簽中運(yùn)算里需要的變量。先代碼中不足的是,窗口只能注定延遲%C%的變量秒數(shù),不能自定義任意延遲時(shí)間,雖然PING /N (N數(shù))可以設(shè)定預(yù)期延遲。但在我看來效果不夠理想,因?yàn)槲蚁氡3执翱谀茈S時(shí)保持%time:~3,-3%每秒刷新。如果腳本顯示窗口設(shè)定的是33或任意個(gè)遞減數(shù),而設(shè)定的延遲是10秒或10分鐘,那么腳本該如何按照比例遞減進(jìn)度條(遞進(jìn)也是一個(gè)樣)就是按照延遲比例來遞減或遞進(jìn),就拿33個(gè)顯示條延遲10來比喻吧!時(shí)間延遲到5秒的時(shí)候進(jìn)度條遞減了16個(gè)或17個(gè),該如何寫他的運(yùn)算方式?求:各路大牛和管理,給個(gè)意見、討論、看法、或范本。