for /f "tokens=2 delims==" %%i in ('wmic logicaldisk where caption^=^"%p%^" get freespace /value 2^>nul') do set m=%%i
set m3=%m:~0,7%
set m=%m:~7%
call :loop "1048576"
:loop1
if %m2% LSS 1024 echo.&cls&echo.&echo.&echo. %p% 盘剩余空间为 %m2% MB&pause>nul&goto :eof
set m=%m2%
set m3=%m:~0,3%
set/a m=%m:~3%*1000
for %%i in (m1 m2) do set %%i=
call :loop "1024"
for /f "delims=0 tokens=*" %%i in ("%m2%") do set m=%%i
set g=%m:~0,-3%.
set g=%g%%m:~-3,3% G
cls
:m
echo.
echo.
echo. %p% 盘剩余空间为 %g%
echo.
pause>nul
goto :eof
:loop
set /a m1=%m3%%m:~0,1%/%~1
set m2=%m2%%m1%
set /a m3=%m3%%m:~0,1%%%%~1
if %m3% equ 0 set m3=
set m=%m:~1%
if not "%m%"=="" goto loop1
goto :eof
我大概知道上面的意思是,把U盘的容量换算成GB,没有1GB的换算成MB,可是直接用KB除以1048576不就是多少多少MB了吗,那么多赋值运算是干什么的呢,不太懂,请高手详细指教,特别是
set m=%m2%
set m3=%m:~0,3%
set/a m=%m:~3%*1000
set g=%m:~0,-3%.
set g=%g%%m:~-3,3%
是在做什么??
另外,如果U盘的容量大于2GB,也就是2147364847KB,之后,大于DOS可处理的32位,如果我要进行除法运算,应该怎么做呢??跪求批处理高手指导!!!