求一P处理,取得硬盘剩余容量大小。
先取得A盘容量大小,当小于20M则执行del命令,大于20M则跳过执行del
谢谢高手!
先取得A盘容量大小,当小于20M则执行del命令,大于20M则跳过执行del
谢谢高手!
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@echo off
setlocal enabledelayedexpansion
:Main
cls
set /a num2=1024*1024
FOR %%i IN (c d e f g h i j k l m n o p q r s t u v w x y z) DO (
IF EXIST %%i:\ (
SET num3_str=
SET num4=
MD %%i:\test
FOR /f "tokens=3" %%j in ('dir /-c %%i:\') DO set num1=%%j
IF NOT "!num1!"=="0" (
call :Loop
FOR /f "delims=0 tokens=*" %%k IN ("!num3_str!") DO set num3_str=%%k
echo The rest disksize of the prartition %%i is !num3_str! MB
echo.
)
RD %%i:\test
)
)
pause
:Loop
REM division
REM
SET /a num3=%num4%%num1:~0,1%/%num2%
REM The return value
REM
SET num3_str=%num3_str%%num3%
REM arithmetical compliment
REM
SET /a num4=%num4%%num1:~0,1%%%%num2%
IF %num4% EQU 0 SET num4=
REM Set num1
REM
SET num1=%num1:~1%
IF NOT "%num1%"=="" GOTO Loop
GOTO :EOF@echo off
set disk=d:
for /f "tokens=2 delims==" %%a in ('wmic logicaldisk where "caption='%disk%'" get FreeSpace /value') do (
set "sth=%%a"
)
set "sth=%sth:~,-7%"
echo %sth%
if %sth% lss 20 (
echo del something%如果显示符合要求,请把这行修改为删除的代码%
) else (
echo 磁盘容量已经足够了
)
echo.&pause
@echo off&color b
set disk=E
for /f %%a in ('wmic logicaldisk where "caption='%disk%:'" get FreeSpace /value 2^>nul') do SET %%a>nul
set free=%FreeSpace:~-10%
if not %FreeSpace:~0,-10%.==. goto 大于
:去首0
if %free:~0,1%==0 set free=%free:~1%&goto 去首0
if %free% gtr 20971520 goto 大于
:小于
echo %disk%盘小于20M
pause
goto :eof
:大于
echo %disk%盘大于20M
pauseOriginally posted by 不得不爱 at 2009-2-23 08:08 PM:
请自行修改 disk 变量为你需要检测的盘符,把 echo 语句行替换为你想要执行的命令就可以了!
@echo off&color b
set disk=E
for /f %%a in ('wmic logicaldisk wh ...

