中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 11:18
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 可以使用dos命令获得磁盘剩余空间吗? 查看 3,063 回复 20
楼 主 可以使用dos命令获得磁盘剩余空间吗? 发表于 2007-04-11 20:42 ·  中国 江苏 苏州 电信
中级用户
★★
积分 238
发帖 98
注册 2007-04-10 07:50
19年会员
UID 84593
性别 男
来自 陕西
状态 离线
可以使用dos命令获得磁盘剩余空间吗?
各位大哥:dos能做到吗?;)
2 发表于 2007-04-11 22:19 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
dir就可以了。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
3 发表于 2007-04-12 12:40 ·  中国 江苏 苏州 电信
中级用户
★★
积分 238
发帖 98
注册 2007-04-10 07:50
19年会员
UID 84593
性别 男
来自 陕西
状态 离线
dir/c可以显示出来;
但是我是想将剩余空间大小作为一个判断条件。、
dir/c可以将剩余大小的值=a吗?
set a=%dir/c%
行吗?
一切皆有可能!我行!我能!
4 发表于 2007-04-12 14:10 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

不行。
5 发表于 2007-04-12 21:07 ·  中国 江苏 苏州 电信
中级用户
★★
积分 238
发帖 98
注册 2007-04-10 07:50
19年会员
UID 84593
性别 男
来自 陕西
状态 离线
我说的目的是想达成,在d盘剩余空间小于500MB时删除d盘中建立最早的2gb资料。
大哥们觉得通过*.bat可以实现吗?
《如果问题很幼稚,各位不要见笑,我是新手!》
一切皆有可能!我行!我能!
6 发表于 2007-04-12 21:31 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
新手并不可笑,但如果新手不认真学习以前的讨论内容就不断的提问题就不太好了。

你的问题并不复杂,应该比较容易解决,我可以提示你用for命令提取出相关的值来进行判断,或者使用wmic命令:

wmic logicaldisk list brief
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
acme +1 2007-04-13 08:48
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
7 发表于 2007-04-12 22:57 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
wmic logicaldisk where deviceID="c:" get FreeSpace |more +1

其他盘自行更改其中的c:为其他盘
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
acme +1 2007-04-13 08:48
8 发表于 2007-04-12 23:48 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
23年会员
UID 7105
性别 男
状态 离线
如果是要在纯DOS下:
1
用第三方 get K ,但好象只能支持最大2G
2
用第三方 LMOD, 分析DIR 的结果, 没有2G限制
dir C:\ /w/ahd | find " free" | lmod /s set freesize=[$!-2] [$!-1][-]>freesize.bat
call freesize
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
acme +2 2007-04-13 08:47
9 发表于 2007-04-12 23:56 ·  中国 河北 石家庄 电信
初级用户
积分 99
发帖 41
注册 2007-02-19 03:42
19年会员
UID 79773
性别 男
状态 离线
用diskpart也不错~
量子公民
10 发表于 2007-04-13 08:49 ·  中国 江苏 苏州 电信
中级用户
★★
积分 238
发帖 98
注册 2007-04-10 07:50
19年会员
UID 84593
性别 男
来自 陕西
状态 离线
可以详细指点一下吗?
如何将他用语条件判断中?
谢谢!
一切皆有可能!我行!我能!
11 发表于 2007-04-13 10:04 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
for /f %%a in ('wmic logicaldisk where deviceID="c:" get FreeSpace |more +1') do if "%%a" geq ......
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
acme +1 2007-04-17 20:57
12 发表于 2007-04-13 20:41 ·  中国 江苏 苏州 电信
中级用户
★★
积分 238
发帖 98
注册 2007-04-10 07:50
19年会员
UID 84593
性别 男
来自 陕西
状态 离线
谢谢了,如果验证ok再来谢谢指导者。
一切皆有可能!我行!我能!
13 发表于 2007-04-17 08:56 ·  中国 江苏 苏州 电信
中级用户
★★
积分 238
发帖 98
注册 2007-04-10 07:50
19年会员
UID 84593
性别 男
来自 陕西
状态 离线
我试验了很多都是无法实现,哪位高手可以说明详细一点吗?
我要实现的就是:
如果d盘的空间小于1GB了就自动删除建立时间最早的2个资料夹。
一切皆有可能!我行!我能!
14 发表于 2007-04-17 20:57 ·  中国 江苏 苏州 电信
中级用户
★★
积分 238
发帖 98
注册 2007-04-10 07:50
19年会员
UID 84593
性别 男
来自 陕西
状态 离线
大哥,你给注意吧。
一切皆有可能!我行!我能!
15 发表于 2007-04-24 23:09 ·  中国 福建 龙岩 电信
新手上路
积分 5
发帖 3
注册 2006-12-29 03:15
19年会员
UID 74878
性别 男
状态 离线
@echo off
set driver=e
for /f "tokens=1-10 delims=, " %%a in ('dir %driver%: ^| find "可用字节"') do set c=%%c
for /f "tokens=1-10 delims=, " %%a in ('dir %driver%: ^| find "可用字节"') do set d=%%d
for /f "tokens=1-10 delims=, " %%a in ('dir %driver%: ^| find "可用字节"') do set e=%%e
for /f "tokens=1-10 delims=, " %%a in ('dir %driver%: ^| find "可用字节"') do set f=%%f
for /f "tokens=1-10 delims=, " %%a in ('dir %driver%: ^| find "可用字节"') do set g=%%g
for /f "tokens=1-10 delims=, " %%a in ('dir %driver%: ^| find "可用字节"') do set h=%%h
echo %d% | find "字节" >nul
if %ERRORLEVEL% neq 0 goto nexte
set space=%c%
:nexte
echo %e% | find "字节" >nul
if %ERRORLEVEL% neq 0 goto nextf
set space=%c%%d%
set /a space=%space%/1024/1024
:nextf
echo %f% | find "字节" >nul
if %ERRORLEVEL% neq 0 goto nextg
set space=%c%%d%%e%
set /a space=%space%/1024/1024
:nextg
echo %g% | find "字节" >nul
if %ERRORLEVEL% neq 0 goto nexth
set space=%d%%e%%f%
set /a space=%space%/1024/1024
set t=%c%
set /a t=%t%*953
set /a space=%space%+%t%
:nexth
echo %h% | find "字节" >nul
if %ERRORLEVEL% neq 0 goto nextx
set space=%c%%d%%e%%f%%g%
set space=%d%%e%%f%
set /a space=%space%/1024/1024
set t=%c%%d%
set /a t=%t%*953
set /a space=%space%+%t%
:nextx
echo %driver%:=%space%M___FREE
echo 按任意键退出... && pause>nul
论坛跳转: