批处理bat函数(大数字加减乘除、时期时间计算、数字排序、进制转换等)

目录

  • 计算任意位数的正整数加法
  • 计算1000位以内的正整数减法
  • 计算任意位数的正整数乘法
  • 500位内整数除法函数
  • 计算时间差
  • 可以处理0开头的数、重复数及200位以内的超大整数(封装)
  • 计算指定天数 前/后 的日期及星期
  • 进制转换(函数)
    • 1、任意进制互转
    • 二进制转十六进制(封装)(通过4位一段转换,可处理超大数)
    • 十六进制转二进制(封装)(通过4位一段转换,可处理超大数)
    • 二进制转十进制(封装)(只能处理cmd范围内的数,小巧方便代码中调用)
    • 获取10进制数(含负数)的 原码、反码、补码(未封装)
    • 转换 2、8、10、16、进制数并显示2进制 原码、反码、补码(未封装)
【批处理bat函数(大数字加减乘除、时期时间计算、数字排序、进制转换等)】发几个我的函数
2009-02-20 日更新:修正加法函数中一处bug,
增加整数除法“函数”(内勘多个标签,应该不算标准的封装)
2009-02-18 日更新:
更新乘法函数,大大缩短代码,并且效率大大提升,且不再受位数限制。
理论上只要积不超过变量赋值的最大位数就可以。
更新加法函数:代码略增,效率略为提高,且不再受位数限制。
更新减法函数:代码略增,效率提高,位数由200提升到1000位。
一、加法函数 任意位数 的正整数 进行 加法计算
二、减法函数 可以对 200位 以内正整数 进行 减法计算
三、乘法函数 可以对 任意位数 的正整数进行 乘法计算
四、计算批处理运行时间函数 时间必须是24小时制,未考虑时间为00点的情况。
五、查询指定天数前的日期(作者:Will Sort 出自:cn-dos )
六、数字排序函数
七、关于进制转换的函数
1、任意进制互转(只能处理cmd范围内的数)
标签段以封装,可直接调用,使用方法见标签上方的说明
为方便使用,标签以外的代码作了界面美化等处理。使得代码略显臃肿。。。
2、二进制转十六进制(封装)(通过4位一段转换,可处理超大数)
3、十六进制转二进制(封装)(通过4位一段转换,可处理超大数)
4、二进制转十进制(封装)(只能处理cmd范围内的数,小巧方便代码中调用)
5、获取10进制数(含负数)的 原码、反码、补码(未封装)(只能处理cmd范围内的值)
完全不懂计算机,只理解为计算机中负数用补码表达
代码中二进制数用32位显示,超出32位的会出错,
呵呵,不知道电脑中有没有用32位以上表达的二进制数,哈哈外行话见笑了^_^
6、综合以上对2、8、10、16进制数进行转换、(未封装)
显示转换后的2、8、10、16进制数及 原码、反码、补码

计算任意位数的正整数加法
@echo offcall :jia 354687654165435 35486456 okecho %ok%pause:jia 加法函数(封装)by @随风 @bbs.bathome.net::计算任意位数的正整数加法setlocal enabledelayedexpansion&set f=&set "t="set var1=%~1&set var2=%~2&set /a j=0,n1=0,n2=0for /l %%a in (0 1 9) do (set vard1=&set "vard2="set var1=!var1:%%a= %%a !&set var2=!var2:%%a= %%a !)for %%a in (!var1!)do (set/a n1+=1&set vard1=%%a !vard1!)for %%a in (!var2!)do (set/a n2+=1&set vard2=%%a !vard2!)(if !n1! lss !n2! (set var1=%var2%&set "var2=%var1%"set vard1=%vard2%&set vard2=%vard1%))&set "var2=!var2: =!"for %%a in (!vard1!) do (if "!var2!"=="" set /a var2=0set /a a=%%a+!var2:~-1!+j&set t=!a:~-1!!t!&set "a=0!a!"set "j=!a:~-2,1!"&set var2=!var2:~0,-1!)if !j! neq 0 set "t=!j!!t!"Endlocal&set %~3=%t%&goto :EOF


计算1000位以内的正整数减法
@echo offcall :jian 354687654165435 35486456 okecho %ok%pause:jian 减法函数(封装)by @随风 @bbs.bathome.net::计算1000位以内的正整数减法setlocal enabledelayedexpansion&&set t=&set f=&set "lin="for /l %%a in (1 1 10) do set "lin=0000000000!lin!"set lin=!lin!!lin!!lin!!lin!!lin!&set "lin=!lin!!lin!"set var1=!lin!%~1&set var2=!lin!%~2&set vard1=&set/a j=0set var1=!var1:~-1000!&set "var2=!var2:~-1000!"if "!var1!" lss "!var2!" (set var1=%~2&set "var2=%~1"set "f=-") else set var1=%~1&set "var2=%~2"for /l %%a in (0 1 9) do set "var1=!var1:%%a= %%a !"for %%a in (!var1!) do set "vard1=%%a !vard1!"for %%a in (!vard1!) do (if "!var2!"=="" set/a var2=0set /a a=%%a-j,b=!var2:~-1!if !a! lss !b! (set /a a+=10,j=1)else set /a j=0set /a w=a-b&set t=!w!!t!&set var2=!var2:~0,-1!)for /f "tokens=* delims=0" %%a in ("!t!") do (if "%%a"=="" (set t=0) else set "t=%%a")Endlocal&set %~3=%f%%t%&goto :EOF


计算任意位数的正整数乘法
@echo offcall :cen 354687654165435 35486456 okecho %ok%pause:cen 乘法函数(封装)by @随风 @bbs.bathome.net::计算任意位数的正整数乘法setlocal enabledelayedexpansionif "%~1"=="0" Endlocal&set %~3=0&goto :EOFif "%~2"=="0" Endlocal&set %~3=0&goto :EOFset f=&set jia=&set ji=&set /a n1=0,n2=0set vard1=&set "vard2="&set var1=%~1&set "var2=%~2"for /l %%a in (0 1 9) do (set var1=!var1:%%a= %%a !&set var2=!var2:%%a= %%a !)for %%a in (!var1!)do (set /a n1+=1&set vard1=%%a !vard1!)for %%a in (!var2!)do (set /a n2+=1&set vard2=%%a !vard2!)if !n1! gtr !n2! (set vard1=%vard2%&set vard2=%vard1%)for %%a in (!vard1!) do (set "t="&set /a j=0for %%b in (!vard2!) do (if "!jia!"=="" set /a jia=0set /a a=%%a*%%b+j+!jia:~-1!&set "t=!a:~-1!!t!"set a=0!a!&set "j=!a:~-2,1!"&set jia=!jia:~0,-1!)set "ji=!t:~-1!!ji!"if "!j:~0,1!"=="0" (set ss=) else set "ss=!j:~0,1!"set jia=!ss!!t:~0,-1!)if not "!j:~0,1!"=="0" set "t=!j:~0,1!!t!"set "ji=!t!!ji:~1!"Endlocal&set %~3=%ji%&goto :EOF


500位内整数除法函数
@echo offset suru=000012/001200call :cu0%suru:/= % okecho. %ok%pauseexit:cu0 500位内整数除法函数(封装)by @随风 bbs.bathome.net::函数内有 cu1 cu2 cu3 cu4 四个标签,引用时需注意setlocal enabledelayedexpansion&set "lin=00000"set /a zongw=1000,cs1w=0,cs2w=0,falg=0,x=0if "!str!"=="1" Endlocal&set %~3=%ff%!num!&goto :EOFif "%~1"=="0" set sang=0&goto cu4if "!str!"=="0" set sang=以零为除数的错误。&goto cu4if not defined xiaosu set /a xiaosu=10for /l %%a in (1 1 5) do set "lin=!lin!!lin!!lin!"set sang=&set ppp=&set var1=%~1&set "var2=%~2"for /f "tokens=* delims=0" %%a in ("!var1!")do set var1=%%afor /f "tokens=* delims=0" %%a in ("!var2!")do set var2=%%afor /l %%a in (0 1 9)do (set "var1=!var1:%%a= %%a !"set "var2=!var2:%%a= %%a !")for %%a in (!var1!) do set /a cs1w+=1for %%a in (!var2!) do set /a cs2w+=1for /l %%a in (1 1 10) do (set t=&set cs=%~2&set/a j=0for /l %%b in (1 1 !cs2w!) do (set /a a=%%a*!cs:~-1!+jset t=!a:~-1!!t!&set a=0!a!&set "j=!a:~-2,1!"set cs=!cs:~0,-1!&set cs%%a=&set "bj%%a=")if !j! neq 0 (set cs%%a=!lin!!j!!t!&set "bj%%a=!j!!t!") else set cs%%a=!lin!!t!&set "bj%%a=!t!"set "cs%%a=!cs%%a:~-%zongw%!")set var2=!lin!!var2: =!&set "var2=!var2:~-%zongw%!"set /a cswc=cs1w-cs2w&set "var1=!var1: =!"if !cswc! lss 0 (set cswc=!cswc:-=!&set/a flag=1for /l %%a in (1 1 !cswc!)do (if %%a leq 11 set sang=0!sang!&set /a x=cswc-1set "var1=!var1!0")set "sang=!sang:~0,1!.!sang:~1!")set ppp=!var1:~0,%cs2w%!&set "var1=!var1:~%cs2w%!"if !flag! equ 1 (set /a bul=1) else set /a bul=0goto cu2:cu1if not defined var1 (set "var1=0"if not defined ppp goto cu4if !flag! equ 0 (set sang=!sang!.&set /a flag=1))set/a bul=1&set ppp=!ppp!!var1:~0,1!&set "var1=!var1:~1!":cu2if !x! geq %xiaosu% goto cu4set pvar1=!lin!!ppp!&set "pvar1=!pvar1:~-%zongw%!"if "!pvar1!" lss "!var2!" (if !bul! equ 1 (set sang=!sang!0&set /a bul=0if !flag! equ 1 set /a x+=1)if "!ppp:~0,1!"=="0" set "ppp="goto cu1)if !flag! equ 1 set /a x+=1set /a bul=0::计算商for /l %%a in (1 1 10) do (if "!cs%%a!" equ "!pvar1!" (set "sang=!sang!%%a"&set "yu=!bj%%a!"&goto cu3)if "!cs%%a!" gtr "!pvar1!" (set /a s=%%a-1set "sang=!sang!!s!"&set yu=!t!&goto cu3)set "t=!bj%%a!"):cu3 计算差set cjs=!ppp!&set cj1=&set m=&set/a jjj=0for /l %%a in (0 1 9) do set "cjs=!cjs:%%a= %%a !"for %%a in (!cjs!) do set "cj1=%%a !cj1!"for %%a in (!cj1!) do (if "!yu!"=="" set/a yu=0set /a a=%%a-jjj,b=!yu:~-1!if !a! lss !b! (set /a a+=10,jjj=1)else set/a jjj=0set /a w=a-b&set m=!w!!m!&set yu=!yu:~0,-1!)for /f "tokens=* delims=0" %%m in ("!m!") do (if "%%m"=="" (set m=0) else set "m=%%m")if !m! equ 0 (if "!var1:0=!"=="" set sang=!sang!!var1!&goto cu4set ppp=&goto cu1) else set "ppp=!m!"goto cu2:cu4if "!sang:~0,1!"=="." set "sang=0!sang!"Endlocal&set %~3=%ff%%sang%&goto :EOF


计算时间差
@echo offset t=%time%call :time0 "%t%" "%time%" okecho %ok%pause:time0计算时间差 (封装)@echo off&setlocal&set /a n=0&rem code 随风 @bbs.bathome.netfor /f "tokens=1-8 delims=.: " %%a in ("%~1:%~2") do (set /a n+=10%%a%%100*360000+10%%b%%100*6000+10%%c%%100*100+10%%d%%100set /a n-=10%%e%%100*360000+10%%f%%100*6000+10%%g%%100*100+10%%h%%100)set /a s=n/360000,n=n%%360000,f=n/6000,n=n%%6000,m=n/100,n=n%%100set "ok=%s% 小时 %f% 分钟 %m% 秒 %n% 毫秒"endlocal&set %~3=%ok:-=%&goto :EOF


可以处理0开头的数、重复数及200位以内的超大整数(封装)
@echo off:startsetlocal enabledelayedexpansion&clsfor /l %%a in (1 1 10) do set str=!str! !random!echo.&echo %str%call :sort "%str%" okecho%ok%pause>nulendlocal&goto start:sort 可以处理0开头的数、重复数及200位以内的超大整数(封装)@echo off&setlocal enabledelayedexpansionfor /f "delims==" %%a in ('set p. 2^>nul')do set "%%a="for /l %%a in (1 1 20) do set "p.lin=0000000000!p.lin!"for %%a in (%~1) do (set s=!p.lin!%%a&set "s=!s:~-200!"if defined p...!s! (set p..%%a=!p..%%a! %%aset p...!s!=!p..%%a! %%a) else (set p...!s!=%%a))for /f "tokens=2 delims==" %%a in ('set p...') do (for %%i in (%%a) do set "p.ok=!p.ok! %%i")endlocal&set %~2=%p.ok:~1%&goto :EOF


计算指定天数 前/后 的日期及星期
@echo off:startsetlocal&clsset /p tian=请指定要追溯的天数:&echo\call :Date2Day "%date%" %tian% okecho%ok%endlocal&pause>nul&goto start:Date2Day 计算指定天数 前/后 的日期及星期 (封装)@echo off&setlocal ENABLEEXTENSIONSfor /f "tokens=1-3 delims=/-:\, " %%a in ('echo/%~1') do (set /a yy=%%a,mm=100%%b%%100,dd=100%%c%%100)set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633set /a i=j-%~2,a=i+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=aset /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)for %%a in (一/1 二/2 三/3 四/4 五/5 六/6 日/0) do (for /f "tokens=1,2 delims=/" %%i in ("%%a")do set %%i=%%j&set ".%%j=%%i")if %~2 gtr 0 (set /a d=^(7-%~2%%7+%date:~-1%^)%%7&set x=前) else (set /a d=^(~%~2+1+%date:~-1%^)%%7&set x=后)call set "d=星期%%.%d%%%"endlocal&set %~3=%yy%-%mm%-%dd% %d%&goto :EOF


进制转换(函数)
1、任意进制互转
@echo off&color 1f&set /a q=10,h=2title 任意进制互转 默认:%q%进制转%h%进制:startsetlocal&echo.&echo. 被转换的数 被转换数的进制 需转换成的进制echo.&echo. 如:95 16 10表示将 16进制数95 转换 为10进制数echo.&echo. 参数可用分割符为空格 / + - \如:95/16/10 或95+16+10echo.&echo. 默认将 10进制 转换为 2进制(即上例中如果不输入 16 10 则默认为 10 2)echo.&set /p num= 请输入需转换的数 &clsif not defined num endlocal&goto startfor /f "tokens=1-3 delims=/+-\ " %%a in ("%num%") do (set "num=%%a"if not "%%b"=="" if not "%%c"=="" set /a q=%%b,h=%%c)call :nxn "%num%" ok %q% %h%for /l %%a in (1 1 12)do (if %%a equ 4 (echo. %q%进制转%h%进制 结果echo.&echo. %num% = %ok%)else echo\)set /a w=%random%%%2if %w% equ 1 (set f=1f) else (set f=df)color %f%&endlocal&goto start::函数使用方法:call :nxn "98" ok 10 2::call :nxn "被转换的数" 保存结果的变量名 被转换数的进制 需转换成的进制::默认将 10进制 转换为 2进制(即上例中不输入 10 2):nXn 任意进制互转 @随风 @bbs.bathome.net(封装)@echo off&setlocal enabledelayedexpansionif "%~4"=="" (set /a q=10,h=2)else (set /a q=%~3,h=%~4)set "str=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"for /l %%a in (0 1 35)do set .%%a=!str:~%%a,1!&set ".!str:~%%a,1!=%%a"set sun=&set jie=&set "var=%~1"&set /a nnn=1,num=0for /l %%a in (0 1 100) do (if not "!var:~%%a,1!"=="" (call set sun=%%.!var:~%%a,1!%% !sun!))for %%a in (!sun!) do set /a num=%%a*nnn+num,nnn*=q:10进制转n进制set /a yu=num%%h,num/=hset "jie=!.%yu%!!jie!"&if !num! gtr 0 goto 10进制转n进制endlocal&set %~2=%jie%&goto :EOF


二进制转十六进制(封装)(通过4位一段转换,可处理超大数)
@echo off&color 1f&title 二进制 转 十六进制call :2x16 "11111111 11111111 11111111 11111110" okecho %ok%pause::以4位一段,分别转换为十六进制,不必考虑超大数问题:2x16 二进制 转 十六进制@随风 @bbs.bathome.net (封装)@echo off&setlocal enabledelayedexpansionset "str=0123456789ABCDEF"set k=&set kk=&set xx=&set "x=000%~1"set x=!x:0= 0!&set x=!x:1= 1!&set /a jj=0,ss=1for %%a in (!x!) do set "xx=%%a !xx!"for %%a in (!xx!) do (set /a jj+=%%a*ss,ss=ss*2if !ss! equ 16 set k=!jj! !k!&set /a jj=0,ss=1)for %%a in (!k!) do set kk=!kk!!str:~%%a,1!endlocal&set %~2=%kk%&goto :EOF


十六进制转二进制(封装)(通过4位一段转换,可处理超大数)
@echo off&color 1f&title 十六进制 转 二进制set mmm=bfa35e7d8call :16x2 %mmm% okecho.&echo十六进制 %mmm%echo.&echo二进制 %ok%echo.&pause::以4位一段,分别转换为二进制,不必考虑超大数问题:16x2 十六进制 转 二进制@随风 @bbs.bathome.net (封装)@echo off&setlocal enabledelayedexpansionset str=0123456789abcdef&set ok=&set "num=%~1"for /l %%a in (0 1 15) do (set ".!str:~%%a,1!=%%a"call set "num=%%num:!str:~%%a,1!= !str:~%%a,1!%%")for %%i in (!num!) do (set /a x=0,n=!.%%i!for %%a in (8 4 2 1) do (set /a x+=%%aif !n! geq !x! (set ok=!ok!1) else (set ok=!ok!0&set /a x-=%%a)))endlocal&set %~2=%ok%&goto :EOF


二进制转十进制(封装)(只能处理cmd范围内的数,小巧方便代码中调用)
@echo offcall :2x10 01100100 okecho %ok%pause:2x102进制转 10进制 @随风 @bbs.bathome.net (封装)@echo off&setlocal enabledelayedexpansionset /a nnn=1,num=0&set nn=&set "n=%~1"set "n=!n:0= 0!"&set "n=!n:1= 1!"for %%a in (!n!) do set "nn=%%a !nn!"for %%a in (!nn!) do set /a num+=%%a*nnn,nnn*=2endlocal&set %~2=%num%&goto :EOF


获取10进制数(含负数)的 原码、反码、补码(未封装)
@echo off&color 1f&title 获取10进制数的 原码、反码、补码::获取10进制数的 原码、反码、补码::计算机中 负数用补码表达::补码:反码+1::反码:将二进制数(原码)按位取反 (即:1变0、0变1)::原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。::个人理解为在计算机中表达负数的二进制数叫补码::所以以下代码中,若输入的是负数则结果中补码代表该数@echo off&rem @随风 @bbs.bathome.net @2009-01-15:startsetlocal enabledelayedexpansionfor /l %%a in (1 1 15) do set "lin=00000!lin!"echo.&echo.&set /p y10= 请输入一个10进制数可以为负数 &clsif !y10! lss 0 (set /a n="~y10"+1,c=1) else set /a n=y10,c=1:10x2 将10进制转成2进制 原码set /a y=n%%2,n/=2&set "j=!y!!j!"&if !n! gtr 0 goto 10x2set j=!lin!!j!&set "j=!j:~-32!"set ss=!j:0= 0!&set "ss=!ss:1= 1!":: 获取反码for %%a in (%ss%) do set /a n="^!%%a"&set "f=!f!!n!"set f=!lin!!f!&set f=!f:~-32!&set "ss=!f!":buma 获取补码set /a m=!ss:~-1!+cif !m! gtr 1 (set c=1&set b=0!b!)else set c=0&set "b=!m!!b!"set "ss=!ss:~0,-1!"if defined ss goto bumaecho.echo10进制数%y10%&echo.echo原码%j:~-32,8% %j:~-24,8% %j:~-16,8% %j:~-8%echo反码%f:~-32,8% %f:~-24,8% %f:~-16,8% %f:~-8%echo补码%b:~-32,8% %b:~-24,8% %b:~-16,8% %b:~-8%endlocal&goto start


转换 2、8、10、16、进制数并显示2进制 原码、反码、补码(未封装)
@echo off::转换 2、8、10、16、进制数并显示2进制 原码、反码、补码::计算机中 负数用补码表达::补码:反码+1::反码:将二进制数(原码)按位取反 (即:1变0、0变1)::原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。::个人理解为在计算机中表达负数的二进制数叫补码::完全不懂计算机,只理解为计算机中负数用补码表达::代码中二进制数用32位显示,超出32位的会出错::只能处理cmd范围内的数@echo off&title 转换 2、8、10、16、进制数并显示2进制 原码、反码、补码::@随风 @bbs.bathome.net @2009-1-12set "str=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"set "color1=1f&set color2=df"&color 1ffor /l %%a in (0 1 35) do (call set ".%%a=%%str:~%%a,1%%"call set ".%%str:~%%a,1%%=%%a"):startsetlocal enabledelayedexpansion&color %color1%echo.echo. ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓echo. ┃┃echo. ┃输入格式:需转换的数+该数的进制(可用分割符 / \ + - 空格)┃echo. ┃┃echo. ┃默认输入的为10进制数、也可以是2、8、16进制、但必须指明进制┃echo. ┃┃echo. ┃如:需转换16进制 2afd 则输入 2afd+1610进制数则不需要指明┃echo. ┃┃echo. ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛echo.&set /p num= 请输入需转换的数&clsif not defined num endlocal&goto startfor /f "tokens=1,2 delims=/\+- " %%a in ("%num%") do (set "n0=%%a"if "%%b"=="" (set jz=10) else set /a jz=%%b)echo.&echo被转换的数为: !jz!进制数!n0!&echo.if !jz! equ 16 (set /a n10=0x!n0!) else (if !jz! equ 10 (set n10=!n0!) else (if !jz! equ 8 (set /a n10=0!n0!) else (set /a nnn=1,n10=0&call :2x10 !n0!)))for %%a in (16 10 8 2) do call :10进制转n进制 !n10! %%aecho.&call :yuan&echo.endlocal&set color1=%color2%&set "color2=%color1%"goto start:10进制转n进制set /a yu=n10%%%~2,n10/=%~2set "jie=!.%yu%!!jie!"&if !n10! gtr 0 goto 10进制转n进制set "xs=%~2"echo !xs:~-5! 进制!jie!set d2=!jie!&set jie=&set "n10=%~1"goto :EOF:2x102进制转10进制set /a n10+=!n0:~-1!*nnn,nnn*=2set "n0=!n0:~0,-1!"if defined n0 goto 2x10goto :EOF:yuanfor /l %%a in (1 1 15) do set lin=00000!lin!set j=!lin!!d2!&set "j=!j:~-32!"set ss=!j:0= 0!&set "ss=!ss:1= 1!":: 获取反码for %%a in (%ss%) do set /a n="^!%%a"&set "f=!f!!n!"set f=!lin!!f!&set f=!f:~-32!&set "ss=!f!"set /a c=1:buma 获取补码set /a m=!ss:~-1!+cif !m! gtr 1 (set c=1&set b=0!b!)else set c=0&set "b=!m!!b!"set "ss=!ss:~0,-1!"if defined ss goto bumaecho原码%j:~-32,8% %j:~-24,8% %j:~-16,8% %j:~-8%echo反码%f:~-32,8% %f:~-24,8% %f:~-16,8% %f:~-8%echo补码%b:~-32,8% %b:~-24,8% %b:~-16,8% %b:~-8%goto :EOF

到此这篇关于批处理bat函数:大数字加减乘除、时期时间计算、数字排序、进制转换等的文章就介绍到这了,更多相关bat数值计算内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读