中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理判断硬盘剩余空间量,求助代码更改!
作者:
标题: 批处理判断硬盘剩余空间量,求助代码更改! 上一主题 | 下一主题
dguest
新手上路





积分 8
发帖 8
注册 2010-8-15
状态 离线
『楼 主』:  批处理判断硬盘剩余空间量,求助代码更改!

各位好!

本人想写个显示硬盘某分区使用量的脚本,写了部分,如下:

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 ]

2010-10-24 17:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dguest
新手上路





积分 8
发帖 8
注册 2010-8-15
状态 离线
『第 2 楼』:  换了个思路,搞定

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

2010-10-24 20:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: