![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 02:34 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理判断硬盘剩余空间量,求助代码更改! |
| 可打印版本 991 / 1 |
| 第1楼 dguest | 发表于 2010-10-24 17:03 |
| 新手上路 发帖 8 积分 8 | |
|
批处理判断硬盘剩余空间量,求助代码更改! 各位好!
本人想写个显示硬盘某分区使用量的脚本,写了部分,如下: set fal=FALSE set a=0 for /f "eol=; skip=1 tokens=1,2,8,15" %%i in ('wmic logicaldisk') do ( set is_fal=%%j if /I !fal!==!is_fal! ( set /a a+=1 set disk!a!=%%i set used!a!=%%k set total!a!=%%l ) ) for /L %%x in (1,1,3) do ( set /a p=used%%x*100/total%%x echo !p! ) 原理简介:使用wmic logicaldisk获取本地硬盘分区信息,通过FALSE判断是否为逻辑分区,若是,则获取该分区的分区名称,分区可用空间,分区总空间,因此在第一个for循环中加入变量a,避免赋值覆盖,期望结果如:disk0=C:,disk1=D:。。。但在运行中发现,变量a的值并未发生改变,由于本人对for、if的运用不是很好,望高手进行指点,谢谢! [ Last edited by dguest on 2010-10-25 at 11:45 ] |
|
| 第2楼 dguest | 发表于 2010-10-24 20:58 |
| 新手上路 发帖 8 积分 8 | |
|
换了个思路,搞定 setlocal enabledelayedexpansion
for /f "eol=; skip=1 tokens=1,2,8,15" %%i in ('wmic logicaldisk') do ( if /I "%%j"=="FALSE" ( set used=%%k set total=%%l set /a p=!used:~0,-6!*100/!total:~0,-6! if "!p!" LEQ "15" goto :error ) ) echo faild pause :error echo success pause |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |