|  | 
 
| binjie 新手上路
 
  
 
 
 
 积分 17
 发帖 9
 注册 2008-4-3
 状态 离线
 | 
| 『楼 主』:
 求一P处理,取得硬盘剩余容量大小。
 
使用 LLM 解释/回答一下 
 
 
求一P处理,取得硬盘剩余容量大小。
 
 先取得A盘容量大小,当小于20M则执行del命令,大于20M则跳过执行del
 
 
 谢谢高手!
 
 
 
 
 |  | 
|  2009-2-23 17:03 |  | 
|  | 
 
| zhengqian529 初级用户
 
   
 
 
 
 积分 100
 发帖 93
 注册 2009-1-14
 来自 湖南
 状态 离线
 | 
| 『第 2 楼』:
 【转】网络上的查看剩余磁盘空间的代码。
 
使用 LLM 解释/回答一下 
 
 
del 是删除文件命令,rd是删除文件夹命令。 你这个题目我不敢尝试。不过我有一个网络上转来的的代码,可以查看机器磁盘的剩余空间 @echo offsetlocal 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
 
 
 
 |  | 
|  2009-2-23 17:35 |  | 
|  | 
 
| binjie 新手上路
 
  
 
 
 
 积分 17
 发帖 9
 注册 2008-4-3
 状态 离线
 | 
| 『第 3 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
你上面这个试过了不行,
 
 这个可以,但不懂怎样加入判断大小后执行命令。
 
 @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
 
 
 
 
 |  | 
|  2009-2-23 17:49 |  | 
|  | 
 
| zhengqian529 初级用户
 
   
 
 
 
 积分 100
 发帖 93
 注册 2009-1-14
 来自 湖南
 状态 离线
 | 
| 『第 4 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
你是考虑删除A盘所有文件还是只是删除文件?1. 判断大小, 你看你的程序里面的最后一行:%t% 它记录盘的大小,你可以使用if语句.把20M 化为与%t%同样的单位,比如Mb,kb,byte。
 2. 删除文件,比较之后执行 del 或者 rd 命令如:
 if %t% lss 20 del /s %disk%:\ (单位为MB,删除这个盘下的所有文件,如果你是想删除底下的所有文件,可以使用rd /s %disk%:\)
 3. 如果你的意图是格式化整个磁盘,使用format命令是再好不过的啦。最好看下format的帮助: format /?
 
 
 
 
 |  | 
|  2009-2-23 18:01 |  | 
|  | 
 
| lianjiang2004 金牌会员
 
       
 
 
 
 积分 3946
 发帖 1884
 注册 2006-1-20
 状态 离线
 |  | 
|  2009-2-23 18:04 |  | 
|  | 
 
| moniuming 银牌会员
 
      永远的菜鸟
 
 
 
 积分 1335
 发帖 574
 注册 2007-11-27
 来自 广西
 状态 离线
 | 
| 『第 6 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
如果只是判断一个分区,用下面的代码应该可以,如果要判断整个硬盘,请自行修改... @echo offset 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
 
 
 
 
 |  | 
|  2009-2-23 19:37 |  | 
|  | 
 
| 不得不爱 超级版主
 
          我爱DOS
 
 
 积分 5310
 发帖 2044
 注册 2005-9-26
 来自 四川南充
 状态 离线
 | 
| 『第 7 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
请自行修改 disk 变量为你需要检测的盘符,把 echo 语句行替换为你想要执行的命令就可以了! @echo off&color bset 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
 pause
 
 
 
 
 |  
                  |  我的网络U盘 我的网络第2个U盘
 论坛软件下载链接
 灵雨飘零论坛
 论坛新手必读,所有人的基本行为准则
 刷QQ空间人气、留言的小软件
 |  | 
|  2009-2-23 20:08 |  | 
|  | 
 
| binjie 新手上路
 
  
 
 
 
 积分 17
 发帖 9
 注册 2008-4-3
 状态 离线
 |  | 
|  2009-2-23 23:16 |  | 
|  | 
 
| binjie 新手上路
 
  
 
 
 
 积分 17
 发帖 9
 注册 2008-4-3
 状态 离线
 | 
| 『第 9 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
Originally posted by 不得不爱 at 2009-2-23 08:08 PM:请自行修改 disk 变量为你需要检测的盘符,把 echo 语句行替换为你想要执行的命令就可以了!
 
 @echo off&color bset disk=E
 for /f %%a in ('wmic logicaldisk wh ...
 
在PE下运行无效,<img src="images/smilies/face-sad.png" align="absmiddle" border="0"><img src="images/smilies/face-sad.png" align="absmiddle" border="0"> 
能不能给个可以在PE下运行的? 
 
 
 
 |  | 
|  2009-2-23 23:24 |  |