|
sanxiao88
初级用户
积分 37
发帖 14
注册 2008-2-17
状态 离线
|
『楼 主』:
如何在纯dos下用批处理显示分区的已用空间和剩余空间?
如何在纯dos下,即在纯dos7.1或dos6.22下,而不是在XP的dos窗口,用批处理显示分区剩余空间和已用空间?包括FAT32分区和NTFS分区。哪位大虾、高人可以做到?
我知道在XP的dos下,可以这样:
@echo off
cls
setlocal EnableDelayedExpansion
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
[ Last edited by sanxiao88 on 2008-11-5 at 20:55 ]
|
|
2008-11-5 20:44 |
|
|
lianjiang2004
金牌会员
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
|
2008-11-5 21:22 |
|
|
DOSforever
金牌会员
积分 4639
发帖 2239
注册 2005-1-30
状态 离线
|
|
2008-11-5 22:25 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
|
2008-11-6 04:21 |
|
|
sanxiao88
初级用户
积分 37
发帖 14
注册 2008-2-17
状态 离线
|
『第
5 楼』:
4楼版主的链接我看了,不行啊!谁有GET.EXE?
4楼版主的链接我看了,不行啊!不过,也要谢谢你们了!
另外,谁有GET.EXE小程序,让我试试这样:
get k c:
strings free=div %get%,1024
[ Last edited by sanxiao88 on 2008-11-6 at 20:53 ]
|
|
2008-11-6 20:52 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
6 楼』:
"不行啊"是咋个表现形式呢?
|
|
|
2008-11-7 09:52 |
|
|
jh1688
中级用户
积分 248
发帖 126
注册 2008-5-30
状态 离线
|
『第
7 楼』:
@echo off
:mini_BEGIN
if exist mini_dd.txt del mini_dd.txt
minito /nohp /p /ifs>mini_dd.txt
strings lines=LINESIZE mini_dd.txt
if %lines%#==0# goto fail
strings lines=add %lines%,1
set line=1
echo 硬盘信息:
:mini
strings line=add %line%,1
if %line%#==%lines%# goto mini_1
strings lined=read mini_dd.txt,%line%
strings row1=left %lined%,3
strings row3=mid %lined%,8,2
strings row5=mid %lined%,19,3
strings row7=right %lined%,7
if %row5%#==YES# set actp=%row1%
set lastp=%row1%
set lastd=%row3%
set lastk=%row7%
if not %lined%#==# echo %lined%
goto mini
:mini_1
echo.
echo 请根据上面显示的硬盘信息确认识别结果。
echo.
echo 自动识别结果:
echo 活动分区是:%actp%
echo 最后分区是:%lastp%
echo 最后分区对应的盘符是:%lastd%
echo 最后分区可用空间是:%lastk%Mb
echo.
if exist mini_dd.txt del mini_dd.txt
goto exit
:fail
cls
echo.
echo 很抱歉,本工具采用的软件未能获得有效硬盘信息。
echo.
if exist mini_dd.txt del mini_dd.txt
:exit
理面用到的DOS第三方工具在本坛可以找到,麻烦楼主自己搜一下啦……
|
|
2008-11-7 18:01 |
|
|
lianjiang2004
金牌会员
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
『第
8 楼』:
Quote: | Originally posted by jh1688 at 2008-11-7 18:01:
@echo off
:mini_BEGIN
if exist mini_dd.txt del mini_dd.txt
minito /nohp /p /ifs>mini_dd.txt
strings lines=LINESIZE mini_dd.txt
if %lines%#==0# goto fail
strings lines=add %lines%,1
set li ... |
|
此法不能处理ntfs分区的剩余空间。
|
Windows 一键还原
http://www.yjhy.com |
|
2008-11-7 18:17 |
|
|
jx1988020488
新手上路
积分 8
发帖 4
注册 2008-10-4
状态 离线
|
『第
9 楼』:
显示剩余空间
for %%a in (c: d: e: f:) do (
for /f "tokens=3" %%b in ('dir %%a^|find "可用字节"') do echo %%b 字节>>123.txt
)
|
|
2008-11-8 20:26 |
|
|
lianjiang2004
金牌会员
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
『第
10 楼』:
Quote: | Originally posted by jx1988020488 at 2008-11-8 20:26:
显示剩余空间
for %%a in (c: d: e: f:) do (
for /f "tokens=3" %%b in ('dir %%a^|find "可用字节"') do echo %%b 字节>>123.txt
) |
|
纯dos下能运行吗?呵呵。
看清楚楼主要求。
cmd下的楼主已经有了。
|
Windows 一键还原
http://www.yjhy.com |
|
2008-11-9 11:49 |
|
|
lianjiang2004
金牌会员
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
『第
11 楼』:
pqdi(PowerQuest Drive Image)有此功能,只是个头大了些。
自己稍微处理一下即可。
|
Windows 一键还原
http://www.yjhy.com |
|
2008-11-9 16:58 |
|
|
sanxiao88
初级用户
积分 37
发帖 14
注册 2008-2-17
状态 离线
|
『第
12 楼』:
请大家读懂我的要求再回答,也谢谢各位的热心哦
也许我没有表达清楚,目前为止,还没有很合适的答案,在此,我再详细表述我的要求,希望高人指点,也希望更多的人参与讨论,哪怕抛砖引玉也可以。谢谢!题目要求是:
1.在纯dos下,即用DOS7.1或dos6.22启动盘引导后,A:\>,而不是在XP或win2000的cmd窗口执行;
2.用批处理包括借助其它第3方小工具软件得到各个分区(包括FAT32分区和NTFS分区)的剩余空间和已用空间的数值?包括FAT32分区和NTFS分区。cmd下的我已经有很多了。
|
|
2008-11-15 13:27 |
|
|
youkaib
初级用户
积分 61
发帖 22
注册 2008-10-19
状态 离线
|
『第
13 楼』:
加个外部命令即可。具体这样写。
@echo off
echo 请在列出驱动器:
fsutil fsinfo drives
echo 是否查询驱动器空间
set /p a=(y/n):
if "%a%"=="n" exit
echo 正在列出驱动器的磁盘空间:
for %%i in (c: d: e: f: g: h: i: j: k:) do (
echo %%i 使用是:
fsutil volume diskfree %%i
echo.
)
echo 操作完成!
echo 欢迎您加入QQ74487678群。许多高手期待着您的加入。
pause >nul
这个更明确一点,比用你的dir方便多了。不过有个缺陷,就是遇到未知设备会报错。这个需要将前面再扩充几条语句。
|
|
2008-11-16 13:20 |
|
|
lianjiang2004
金牌会员
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
『第
14 楼』:
Quote: | Originally posted by youkaib at 2008-11-16 13:20:
加个外部命令即可。具体这样写。
@echo off
echo 请在列出驱动器:
fsutil fsinfo drives
echo 是否查询驱动器空间
set /p a=(y/n):
if "%a%"=="n" ... |
|
看看别人的要求吧,此类脚本手里已有多种了。呵呵。
难道真是不明白什么是dos?
1.在纯dos下,即用DOS7.1或dos6.22启动盘引导后,A:\>,而不是在XP或win2000的cmd窗口执行;
2.用批处理包括借助其它第3方小工具软件得到各个分区(包括FAT32分区和NTFS分区)的剩余空间和已用空间的数值?包括FAT32分区和NTFS分区。cmd下的我已经有很多了。
|
Windows 一键还原
http://www.yjhy.com |
|
2008-11-16 16:11 |
|
|
lianjiang2004
金牌会员
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
|
2008-11-16 16:13 |
|