--------------------------------计算机单位换算脚本.BAT-----------扔代码-------
- @Echo off
- Rem;;;;;;下句 +1 是为了防止 %b% = 0
- Set/a b=%Random% %% 9 + 1
- :Run
- Set/a a+=1
- Set s=%s%%Random%
- If Not %a% equ %b% Goto,Run
- Rem;;;;;; 下句 %s% 是转换值,可以用其他变量或数值取代,上面几句是编写临时测试脚本用的,可以扔了。。
- Echo.i="%s%" >$
- Echo.If i^<1024 Then >>$
- Echo.l=i^&" Byte" >>$
- Echo.ElseIf i^<1048576 Then l=Round(i/1024,2)^&" KB" >>$
- Echo.ElseIf i^<1073741824 Then l=Round(i/1048576,2)^&" MB" >>$
- Echo.Elseif i^<1099511627776 Then l=Round(i/1073741824,2)^&" GB" >>$
- Echo.Elseif i^<1125899906842624 Then l=Round(i/1099511627776,2)^&" TB" >>$
- Echo.Elseif i^<1152921504606846976 Then l=Round(i/1125899906842624,2)^&" PB" >>$
- Echo.Elseif i^<1180591620717411303424 Then l=Round(i/1152921504606846976,2)^&" EB" >>$
- Echo.Elseif i^<1208925819614629174706176 Then l=Round(i/1180591620717411303424,2)^&" ZB" >>$
- Echo.Elseif i^<1237940039285380274899124224 Then l=Round(i/1208925819614629174706176,2)^&" YB" >>$
- Echo.Elseif i^<1267650600228229401496703205376 Then l=Round(i/1237940039285380274899124224,2)^&" BB" >>$
- Echo.Elseif i^<1298074214633706907132624082305024 Then l=Round(i/1267650600228229401496703205376,2)^&" NB" >>$
- Echo.Elseif i^<1329227995784915872903807060280344576 Then l=Round(i/1298074214633706907132624082305024,2)^&" DB" >>$
- Echo.Elseif i^<1361129467683753853853498429727072845824 Then l=Round(i/1329227995784915872903807060280344576,2)^&" CB" >>$
- Echo.Else l=Round(i/1361129467683753853853498429727072845824,2)^&" XB" >>$
- Echo.End If >>$
- Echo.Wscript.Echo l >>$
- Rem;;;;;;如果单纯的求换算可以把以下生成的代码删了,保留自删那行就可以了
- Echo.BE=i^&" Byte" >>$
- Echo.KB=Round(i/1024,2)^&" KB" >>$
- Echo.MB=Round(i/1048576,2)^&" MB" >>$
- Echo.GB=Round(i/1073741824,2)^&" GB" >>$
- Echo.TB=Round(i/1099511627776,2)^&" TB" >>$
- Echo.PB=Round(i/1125899906842624,2)^&" PB" >>$
- Echo.EB=Round(i/1152921504606846976,2)^&" EB" >>$
- Echo.ZB=Round(i/1180591620717411303424,2)^&" ZB" >>$
- Echo.YB=Round(i/1208925819614629174706176,2)^&" YB" >>$
- Echo.BB=Round(i/1237940039285380274899124224,2)^&" BB" >>$
- Echo.NB=Round(i/1267650600228229401496703205376,2)^&" NB" >>$
- Echo.DB=Round(i/1298074214633706907132624082305024,2)^&" DB" >>$
- Echo.CB=Round(i/1329227995784915872903807060280344576,2)^&" CB" >>$
- Echo.XB=Round(i/1361129467683753853853498429727072845824,2)^&" XB" >>$
- Echo.Wscript.Echo "=====================" ^& chr(10) ^& l ^& chr(10) ^& "---------------------" ^& chr(10) ^& BE ^& chr(10) ^& KB ^& chr(10) ^& MB ^& chr(10) ^& GB ^& chr(10) ^& TB ^& chr(10) ^& PB ^& chr(10) ^& EB ^& chr(10) ^& ZB ^& chr(10) ^& YB ^& chr(10) ^& BB ^& chr(10) ^& NB ^& chr(10) ^& DB ^& chr(10) ^& CB ^& chr(10) ^& XB ^& chr(10) ^& "=====================" >>$
- Rem;;;;;;下句是VBS 自删语句,不建议删除
- Echo.CreateObject("Scripting.Filesystemobject").DeleteFile(Wscript.ScriptFullName)>>$
- Rem;;;;;;下句是脚本该脚本调用显示,完整获取 可以用 FOR Cscript -e:vbs -nologo $ 获取转换值和单位,,
- Start/Max "随机生成计算机单位" Cmd /t:e0 /k Echo.随机数【%s%】,循环 %b% 次!^& Cscript -e:vbs -nologo $ ^& Pause^>Nul ^& Exit & Exit
复制代码
------------------------------存ANSI 编码---------名 XXXXXX.BAT -------
朋友写脚本问我,怎么把获取到的文件大小 Size 准确的换成合适的单位来表达,保留小数点后两位
原本我是叫他去找A1的,不过那家伙功底好像有点低,而且比我还懒,,
帮他找里几个A1答复,感觉不是很满意,,
那叼毛,想找的就是全单位转换,Byte,KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB、CB,XB
BAT 下不可转换,可以借助 VBS 来转换,,于是编写了该脚本,,,
编写的时候,计算的位数高达 40 位,1361129467683753853853498429727072845824
普通市面上的计算器 根本无法精确计算,,
找了很多计算器,要么不支持,要么挂羊头卖狗肉,,要么要登录下载,要么过期,
找了几款在线 大整数计算器 ,广告还特别的多,,
于是于昨天,一气之下 , 抽取了其中一款在线计算器的部分核心计算源码,,
借助 A1 改写了一款 “大整数计算器 — 超大整数运算与进制转换”,的计算器,
https://www.bathome.net/thread-95286-1-1.html
支持 10万位整数计算表达,,,算是意外所得,,
,人啊,不能吃太饱,闲得慌!,,,
|