@echo off&color b
set disk=x
for /f %%a in ('wmic logicaldisk where "caption='%disk%:'" get FreeSpace /value 2^>nul') do set %%a
if %FreeSpace% LSS 1024 set/a FreeSpace=(FreeSpace*1000)/1024&echo.&echo.&echo.&echo. %disk% 盘可用空间为 !Free! KB&pause>nul&goto :eof
set mn=MB
call :lp 1048576
set mn=GB
set/a modr=0
set FreeSpace=%t%
set t=0
call :lp 1024
goto :eof
:lp
set Free=%FreeSpace:~0,1%
set/a mod=modr*10+Free
set/a r=mod/%1
set t=%t%%r%
if "%t%"=="0" set t=
set/a modr=mod%%%1
set FreeSpace=%FreeSpace:~1%
if defined FreeSpace goto lp
set/a w=0
if %t% gtr 1024 goto :eof
set t=%t%.
set n=2
:loop
set /a modr*=10,r=modr/%1,w+=1
if %w% geq %n% set/a modr=modr%%%1*10/%1 && goto lpok
set t=%t%%r%
set/a modr=modr%%%1
goto loop
:lpok
cls
for /f "delims=0 tokens=*" %%i in ("%t%%r% %mn%") do set t=%%i
echo.&echo.&echo. %disk% 盘可用空间为: %t%&echo.&pause&exit作者: haokai 时间: 2009-2-24 21:13
自己顶一个,这么久没人理,,
这个P在PE下不能用,
不知那位高手有在PE下可用的。作者: bbis 时间: 2009-2-25 02:58
是因为用了“wmic”命令,当然不能用,等会我修改一下代码,贴上去。作者: bbis 时间: 2009-2-25 03:36 标题: 检测硬盘容量并跳转.BAT @ECHO OFF
setlocal enabledelayedexpansion
set /a k=1024,m=k*k,g=1
for /f "tokens=3" %%j in ('dir /-c A:\ 2^>nul') do set num=%%j
if not "!num1!"=="0" (
call :loop
for /f "delims=0 tokens=*" %%k in ("!j!") do set /a ok=%%k/g
if !ok! GTR 20 goto _end
GOTO _del
)
EXIT
:loop
set /a s=%y%%num:~0,1%/m,y=%y%%num:~0,1%%%m
set j=%j%%s%
if %y% equ 0 set y=
set num=%num:~1%
if not "%num%"=="" goto loop
goto :error