Board logo

标题: 可以使用dos命令获得磁盘剩余空间吗? [打印本页]

作者: acme     时间: 2007-4-11 20:42    标题: 可以使用dos命令获得磁盘剩余空间吗?

可以使用dos命令获得磁盘剩余空间吗?
各位大哥:dos能做到吗?;)
作者: Climbing     时间: 2007-4-11 22:19
dir就可以了。
作者: acme     时间: 2007-4-12 12:40
dir/c可以显示出来;
但是我是想将剩余空间大小作为一个判断条件。、
dir/c可以将剩余大小的值=a吗?
set a=%dir/c%
行吗?
作者: lxmxn     时间: 2007-4-12 14:10

不行。

作者: acme     时间: 2007-4-12 21:07
我说的目的是想达成,在d盘剩余空间小于500MB时删除d盘中建立最早的2gb资料。
大哥们觉得通过*.bat可以实现吗?
《如果问题很幼稚,各位不要见笑,我是新手!》
作者: Climbing     时间: 2007-4-12 21:31
新手并不可笑,但如果新手不认真学习以前的讨论内容就不断的提问题就不太好了。

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

wmic logicaldisk list brief
作者: bjsh     时间: 2007-4-12 22:57
wmic logicaldisk where deviceID="c:" get FreeSpace |more +1

其他盘自行更改其中的c:为其他盘
作者: GOTOmsdos     时间: 2007-4-12 23:48
如果是要在纯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
作者: airosp     时间: 2007-4-12 23:56
用diskpart也不错~
作者: acme     时间: 2007-4-13 08:49
可以详细指点一下吗?
如何将他用语条件判断中?
谢谢!
作者: bjsh     时间: 2007-4-13 10:04
for /f %%a in ('wmic logicaldisk where deviceID="c:" get FreeSpace |more +1') do if "%%a" geq ......
作者: acme     时间: 2007-4-13 20:41
谢谢了,如果验证ok再来谢谢指导者。
作者: acme     时间: 2007-4-17 08:56
我试验了很多都是无法实现,哪位高手可以说明详细一点吗?
我要实现的就是:
如果d盘的空间小于1GB了就自动删除建立时间最早的2个资料夹。
作者: acme     时间: 2007-4-17 20:57
大哥,你给注意吧。
作者: a25969805     时间: 2007-4-24 23:09
@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
作者: lianjiang2004     时间: 2007-4-25 06:34


  Quote:
Originally posted by a25969805 at 2007-4-24 23:09:
@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 %driv ...

dos下能用吗? 是CMD吧?
作者: zhoushijay     时间: 2007-4-27 00:37
set fso=createobject("scripting.filesystemobject")
set dn=fso.getdrive("d:\")
frc=dn.freespace/1024/1024/1024


do while frc<1
   set fn=fso.getfolder("d:\")
   set su=fn.subfolders

   for each folder in su
       fso.deletefolder(folder)
       exit for
   next

loop

[ Last edited by zhoushijay on 2007-4-26 at 11:55 AM ]
作者: qq43142691     时间: 2007-5-23 17:45
@echo off & setlocal EnableDelayedExpansion
title 显示磁盘剩余空间 整理 by 彬 QQ 43142691

color 2e
title 各分区剩余空间情况
echo.
echo.
echo        ╔══════════════════════════════╗
echo        ║        磁盘分区         磁盘卷标名      剩余空间(MB)       ║
echo        ║    _____________________________________________________   ║
for %%d 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 %%d:\nul (
        for /f "tokens=3" %%z in ('dir /-c %%d:\') do set freesize=%%z
        set /a freesize=!freesize:~0,-3!/1049>nul
        set freesize=         !freesize!
        set freesize=!freesize:~-9!
        for /f "tokens=3*" %%v in ('vol %%d:') do set volume=%%w
        set volume=                    !volume!
        set volume=!volume:~-20!
        echo        ║           %%d: !volume!     !freesize!            ║
    )
)
echo        ╚══════════════════════════════╝
pause>nul
作者: lianjiang2004     时间: 2007-5-23 18:06


  Quote:
Originally posted by qq43142691 at 2007-5-23 17:45:
@echo off & setlocal EnableDelayedExpansion
title 显示磁盘剩余空间 整理 by 彬 QQ 43142691

color 2e
title 各分区剩余空间情况
echo.
echo.
echo        ╔═════ ...

都是不看楼主要求的,要dos下的。呵呵。
作者: acme     时间: 2007-7-29 18:08
这个问题还无结果??
作者: DOSforever     时间: 2007-7-29 18:47
参考一下这个:
http://www.cn-dos.net/forum/viewthread.php?tid=15017