中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 11:28
48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 可以使用dos命令获得磁盘剩余空间吗?
可打印版本  3,066 / 20
第1楼 acme 发表于 2007-04-11 20:42
中级用户 发帖 98 积分 238 来自 陕西
可以使用dos命令获得磁盘剩余空间吗?
可以使用dos命令获得磁盘剩余空间吗?
各位大哥:dos能做到吗?;)
第2楼 Climbing 发表于 2007-04-11 22:19
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
dir就可以了。
第3楼 acme 发表于 2007-04-12 12:40
中级用户 发帖 98 积分 238 来自 陕西
dir/c可以显示出来;
但是我是想将剩余空间大小作为一个判断条件。、
dir/c可以将剩余大小的值=a吗?
set a=%dir/c%
行吗?
第4楼 lxmxn 发表于 2007-04-12 14:10
版主 发帖 4,938 积分 11,386

不行。
第5楼 acme 发表于 2007-04-12 21:07
中级用户 发帖 98 积分 238 来自 陕西
我说的目的是想达成,在d盘剩余空间小于500MB时删除d盘中建立最早的2gb资料。
大哥们觉得通过*.bat可以实现吗?
《如果问题很幼稚,各位不要见笑,我是新手!》
第6楼 Climbing 发表于 2007-04-12 21:31
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
新手并不可笑,但如果新手不认真学习以前的讨论内容就不断的提问题就不太好了。

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

wmic logicaldisk list brief
第7楼 bjsh 发表于 2007-04-12 22:57
银牌会员 发帖 621 积分 2,000
wmic logicaldisk where deviceID="c:" get FreeSpace |more +1

其他盘自行更改其中的c:为其他盘
第8楼 GOTOmsdos 发表于 2007-04-12 23:48
铂金会员 发帖 1,827 积分 5,154
如果是要在纯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
第9楼 airosp 发表于 2007-04-12 23:56
初级用户 发帖 41 积分 99
用diskpart也不错~
第10楼 acme 发表于 2007-04-13 08:49
中级用户 发帖 98 积分 238 来自 陕西
可以详细指点一下吗?
如何将他用语条件判断中?
谢谢!
第11楼 bjsh 发表于 2007-04-13 10:04
银牌会员 发帖 621 积分 2,000
for /f %%a in ('wmic logicaldisk where deviceID="c:" get FreeSpace |more +1') do if "%%a" geq ......
第12楼 acme 发表于 2007-04-13 20:41
中级用户 发帖 98 积分 238 来自 陕西
谢谢了,如果验证ok再来谢谢指导者。
第13楼 acme 发表于 2007-04-17 08:56
中级用户 发帖 98 积分 238 来自 陕西
我试验了很多都是无法实现,哪位高手可以说明详细一点吗?
我要实现的就是:
如果d盘的空间小于1GB了就自动删除建立时间最早的2个资料夹。
第14楼 acme 发表于 2007-04-17 20:57
中级用户 发帖 98 积分 238 来自 陕西
大哥,你给注意吧。
第15楼 a25969805 发表于 2007-04-24 23:09
新手上路 发帖 3 积分 5
@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
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023