Board logo

标题: 如何计算双硬盘每个硬盘的分区个数? [打印本页]

作者: gmy     时间: 2006-6-8 18:06    标题: 如何计算双硬盘每个硬盘的分区个数?

如果,第一硬盘2个分区  第二硬盘为3个分区。那么就得到 2个 和 3个

要求 CMD 和 纯DOS  双解!
作者: DOSforever     时间: 2006-6-8 18:26
要求不明:
1.是只要显示还是要输出具体的数值?
2.是只考虑 FAT、NTFS 文件系统类型的分区还是所有分区都要考虑?

如果是这样的话,我看必须得靠编个具体程序来实现了。
作者: gmy     时间: 2006-6-9 00:39
其实是这样的,在纯DOS批处理里:

GDISK 1 >1.txt
GDISK 2 >2.txt

通过对1.txt和2.txt的提取,可以做到。
但GDISK体积较大,我想用小程序(最好是DOS命令),不知能否做到?
作者: DOSforever     时间: 2006-6-9 13:14
我后来从网上找了个 GDISK,是1.0f-beta版的,不知道这是否是最新版的。我看了下,它计算分区数的时候把扩展分区也算在内了。一般的,我们只算实际有用的分区数,即主分区和扩展分区中的逻辑分区。比如,我有一个主分区,扩展分区中分了2个逻辑分区,我会说我一共分了3个区,而不会说4个。不知道你的要求是什么。另外,请给出具体的输出要求。
作者: gmy     时间: 2006-6-9 17:05
GDISK我知道的是8.3最高版本,最好要一个小工具,几KB的。GDISK太大
作者: DOSforever     时间: 2006-6-9 18:13
请给出具体的输出要求。就是说,你要怎样的输出,是不是只要一个数字就行了。

另外,你的 GDISK 是哪里下载的?看来我找到的是很早以前的了:

  Quote:
(C) Copyright Binary Research, 1998. Version 1.0f-BETA.


作者: fujianabc     时间: 2006-6-9 20:37


  Quote:
Originally posted by DOSforever at 2006-6-9 06:13 PM:
请给出具体的输出要求。就是说,你要怎样的输出,是不是只要一个数字就行了。

另外,你的 GDISK 是哪里下载的?看来我找到的是很早以前的了:

太强了,你找到了一个远古版的gdisk,居然还是属于Binary Research公司的版本。

gdisk是ghost软件的一个程序。ghost最早是Binary Research开发的,五个字母是该软件全名(忘了叫什么了)的英文首字母缩写。后来symantec收购了ghost,从此才有norton ghost和symantec ghost。
作者: fastslz     时间: 2006-6-9 20:58
不用Gdisk,用ghost就行,dos之家葛站长不会嫌弃ghost的个头吧:P

@echo off
ghost -dd >NUL
:1
disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:1" >NUL
if not errorlevel 1 set  disk1=1 goto 2
:2
disk1=1
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:2" >NUL
if not errorlevel 1 set disk1=2 goto 3
..............goto 1_1
:2_1
disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:1" >NUL
if not errorlevel 1 set  disk2=1 goto 2
:2_2
disk1=1
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:2" >NUL
if not errorlevel 1 set disk2=2 goto 3
................goto end

[ Last edited by fastslz on 2006-6-9 at 21:00 ]
作者: fastslz     时间: 2006-6-9 21:08
不过如果判断1个硬盘上有是否存在9分区的话,这样要find 9X2=18次可苦了赛扬Ⅲ以下机子了!
作者: fastslz     时间: 2006-6-9 21:24
不好意思喝了酒有点迷惑

@echo off
ghost -dd >NUL
:1
disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:1" >NUL
if not errorlevel 1 set  disk1=1 goto 2
:2
IF "%disk1%"=="1" goto end
disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:2" >NUL
if not errorlevel 1 set disk1=2 goto 3
:3
IF "%disk1%"=="2" goto end
..............goto 2_1
:2_1
disk2=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:1" >NUL
if not errorlevel 1 set  disk2=1 goto 2
:2_2
IF "%disk2%"=="1" goto end
disk2=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:2" >NUL
if not errorlevel 1 set disk2=2 goto 2_3
:2_3
IF "%disk2%"=="2" goto end
................goto end
作者: willsort     时间: 2006-6-10 21:39
Re fastslz:

      你的代码还是存在问题,"if not errorlevel 1 set  disk1=1 goto 2",将导致disk1产生错误的值,而且CMD下应该使用 ghostpe 或ghost32的。

      另外,这个脚本可以使用for来简化,如果楼主有相关要求,我会抽时间编写一个,或者也可以参考一下论坛的旧主题,其中有不少是 讨论纯DOS下循环的实现的,可以选择按内容搜索关键字“:loop”。
作者: ITU     时间: 2006-6-10 21:49


  Quote:
Originally posted by gmy at 2006-6-9 17:05:
GDISK我知道的是8.3最高版本,最好要一个小工具,几KB的。GDISK太大

有同感!
作者: fastslz     时间: 2006-6-11 00:18
多谢willsort指导
      本人6年前开始接触DOS一直在黑屏幕上摸索所以对cmd命令太生疏,甚至忽略了cmd命令存在,干脆批处理dos、cmd通用,来这以前也没泡论坛的习惯,现在有机会该多学习学习cmd了。不过32位和16位程序还是区分开的

用for简化在这之前想到过,假设某disk1可能有9个盘,那用find判断9次处理时间过长,而上面的方法如果disk1=2即goto end了,不知道我的思路是否正确。
至于用disk1=1、goto 2 方便标记,实际应用会注意的谢谢提醒


现在还发现上面有错误disk1=2时应该继续判断disk2=?而不是goto end

@echo off
ghost -dd >NUL
:1
disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:1" >NUL
if not errorlevel 1 set  disk1=1 goto 2
:2
IF "%disk1%"=="1" goto FIND2
disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:2" >NUL
if not errorlevel 1 set disk1=2 goto 3
:3
IF "%disk1%"=="2" goto FIND2
..............goto FIND2

:2_1
disk2=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:1" >NUL
if not errorlevel 1 set  disk2=1 goto 2
:2_2
IF "%disk2%"=="1" goto end
disk2=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:2" >NUL
if not errorlevel 1 set disk2=2 goto 2_3
:2_3
IF "%disk2%"=="2" goto end
................goto end

:FIND2
rem 判断是否存在硬盘2
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2" >NUL
if not errorlevel 1 goto 2_1

:end

[ Last edited by fastslz on 2006-6-11 at 00:22 ]
作者: 无奈何     时间: 2006-6-11 02:32
写了个 CMD 下的方案,没有使用第三方工具。脚本不限制磁盘的个数,可惜我只有两个磁盘,没法作更多磁盘的测试。已知的问题:如果像我的硬盘一样状况不好的话可能执行较慢,但不能完全归结于脚本的效率问题。

  Quote:

  1. :: 显示磁盘分区数
  2. :: 无奈何@cn-dos.net - 2006-06-11 - CMDWinXP
  3. @echo off
  4. setlocal ENABLEDELAYEDEXPANSION
  5. rem 获取磁盘信息
  6. for /f "tokens=1,2 delims= " %%a in ('echo list disk ^|diskpart ^|findstr /r /c:"磁盘 [0-9] "') do (
  7.         @echo select disk=%%b>%%b.script
  8.         @echo list partition>>%%b.script
  9.         @echo exit>>%%b.script
  10.         rem 执行脚本,获取磁盘分区信息
  11.         for /f "tokens=1,2 delims= " %%m in ('diskpart /s %%b.script ^|findstr /r /c:"分区 [0-9] "') do (
  12.                 rem 减去扩展的分区数
  13.                 set /a num=%%n-1
  14.         )
  15.         del %%b.script
  16.         echo 磁盘 %%b        含有 !num! 个分区
  17. )
        -=代码着色  BY:无奈何=-

[ Last edited by 无奈何 on 2006-6-11 at 02:42 ]
作者: 不得不爱     时间: 2006-6-11 09:44
fastslz的程序有点问题,会出错!下面是我的程序!
@echo off
ghost -dd >NUL
set disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:1" >NUL
if not errorlevel 1 set disk1=1
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:2" >NUL
if not errorlevel 1 set disk1=2
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:3" >NUL
if not errorlevel 1 set disk1=3
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:4" >NUL
if not errorlevel 1 set disk1=4
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:5" >NUL
if not errorlevel 1 set disk1=5
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:6" >NUL
if not errorlevel 1 set disk1=6
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:7" >NUL
if not errorlevel 1 set disk1=7
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:8" >NUL
if not errorlevel 1 set disk1=8
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:9" >NUL
if not errorlevel 1 set disk1=9
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:10" >NUL
if not errorlevel 1 set disk1=10
if not %disk1%#==# goto 1
goto 2
:1
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:1" >NUL
if not errorlevel 1 set disk2=1
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:2" >NUL
if not errorlevel 1 set disk2=2
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:3" >NUL
if not errorlevel 1 set disk2=3
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:4" >NUL
if not errorlevel 1 set disk2=4
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:5" >NUL
if not errorlevel 1 set disk2=5
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:6" >NUL
if not errorlevel 1 set disk2=6
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:7" >NUL
if not errorlevel 1 set disk2=7
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:8" >NUL
if not errorlevel 1 set disk2=8
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:9" >NUL
if not errorlevel 1 set disk2=9
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:10" >NUL
:2
set disk

[ Last edited by qwe1234567 on 2006-6-11 at 09:46 ]
作者: fastslz     时间: 2006-6-11 16:17
Re qwe1234567
   哈哈....我没双硬盘也没有虚拟机测试的本想提示下葛老师就行,毕竟批处理是他的强项

至于你的方法可以用for简化,之所以我没用我在13楼时说了,如果find 到disk1=2成立直接跳转到find disk2=?不再继续find下去了,因为DOS下find命令执行比较慢,估计find18~20次要停顿一段时间,毕竟把2个硬盘分成18~20个分区的人不多但也不能排除,宁可批处理参数过多find次数减少,也出于考虑葛老师一般用在一键ghost上面,用一键ghost的人也并非全是高配置电脑。

至于13楼批处理出错提示正如willsort老师说的if not errorlevel 1 set  disk1=1 goto 2 变量值过于简单的原因

14楼无奈何版主的批处理我都看不懂,我属于杂牌军没什么学历对自己要求不高,以后象各位版主学习

[ Last edited by fastslz on 2006-6-11 at 16:20 ]
作者: 不得不爱     时间: 2006-6-12 08:20
我的方法是可以在纯DOS下运行,而无奈何的批处理却在纯DOS下无法运行,无法在WINXP以下的系统运行,有局面性!
作者: gmy     时间: 2006-6-12 09:18
谢谢大家,小结一下:

CMD下 核心程序 DISKPART
纯DOS下 核心程序 GHOST
作者: fastslz     时间: 2006-6-12 09:41
今天测试了一下不好意思出洋相了
现在完整了,不会用CMD下 DISKPART可以借助GHOST32 --dd

@echo off
ghost -dd >NUL
:1_1
set disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:9" >NUL
if not errorlevel 1 set  disk1=9
IF "%disk1%"=="9" goto FIND2
set disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:8" >NUL
if not errorlevel 1 set disk1=8
IF "%disk1%"=="8" goto FIND2
set disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:7" >NUL
if not errorlevel 1 set disk1=7
IF "%disk1%"=="7" goto FIND2
set disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:6" >NUL
if not errorlevel 1 set disk1=6
IF "%disk1%"=="6" goto FIND2
set disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:5" >NUL
if not errorlevel 1 set disk1=5
IF "%disk1%"=="5" goto FIND2
set disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:4" >NUL
if not errorlevel 1 set disk1=4
IF "%disk1%"=="4" goto FIND2
set disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:3" >NUL
if not errorlevel 1 set disk1=3
IF "%disk1%"=="3" goto FIND2
set disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:2" >NUL
if not errorlevel 1 set disk1=2
IF "%disk1%"=="2" goto FIND2
set disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:1" >NUL
if not errorlevel 1 set disk1=1
IF "%disk1%"=="1" goto FIND2
goto FIND2


:2_1
set disk2=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:9" >NUL
if not errorlevel 1 set disk2=9
IF "%disk2%"=="9" goto end
set disk2=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:8" >NUL
if not errorlevel 1 set disk2=8
IF "%disk2%"=="8" goto end
set disk2=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:7" >NUL
if not errorlevel 1 set disk2=7
IF "%disk2%"=="7" goto end
set disk2=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:6" >NUL
if not errorlevel 1 set disk2=6
IF "%disk2%"=="6" goto end
set disk2=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:5" >NUL
if not errorlevel 1 set disk2=5
IF "%disk2%"=="5" goto end
set disk2=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:4" >NUL
if not errorlevel 1 set disk2=4
IF "%disk2%"=="4" goto end
set disk2=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:3" >NUL
if not errorlevel 1 set disk2=3
IF "%disk2%"=="3" goto end
set disk2=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:2" >NUL
if not errorlevel 1 set disk2=2
IF "%disk2%"=="2" goto end
set disk2=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2:1" >NUL
if not errorlevel 1 set disk2=1
goto end

:FIND2
rem 判断是否存在硬盘2
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2" >NUL
if not errorlevel 1 goto 2_1

:end
cls
echo.
echo.
echo.
echo 当前第一个硬盘上面有 %disk1% 个分区
IF "%disk2%"=="?" echo 当前第二个硬盘上面有 %disk2% 个分区
PAUSE >NUL

[ Last edited by fastslz on 2006-6-12 at 09:59 ]
作者: 不得不爱     时间: 2006-6-12 10:00
楼上的代码还是错误的,如果找到Key[1]   1:1后就跳到FIND2去了,结果是显示只有一个分区!
作者: fastslz     时间: 2006-6-12 10:22
又重新编辑了
作者: 不得不爱     时间: 2006-6-12 15:18
同样有问题!
作者: fastslz     时间: 2006-6-12 15:56
还有问题?我没办法了,请教一下了

:FIND2
rem 判断是否存在硬盘2
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   2" >NUL
if not errorlevel 1 goto 2_1
set disk1=0

:end
cls
echo.
echo.
echo.
echo 当前第一个硬盘上面有 %disk1% 个分区
IF not "%disk2%"=="0" echo 当前第二个硬盘上面有 %disk2% 个分区
PAUSE >NUL


这样行不?
作者: 不得不爱     时间: 2006-6-17 12:01
你还是先在自己的系统了试下把?
作者: SXBG     时间: 2006-6-17 15:09
知道用ghost -dd的功能就是了,写批处理我相信难不到楼主。
作者: DOSforever     时间: 2006-6-17 15:38


  Quote:
Originally posted by fujianabc at 2006-6-9 20:37:
gdisk是ghost软件的一个程序 ...

我以前 ghost 一直用 DOS 版的,现在为了想看看这个 gdisk 找了个 Windows 版的安装,是8.3企业版。没想到居然提示我说不能安装在 Win9X 的机器上,甚至 XP home 版的也不行?!我只记得从 ghost 从9.0开始才只能用在 NT 系列的 Windows 上,难道能用在 Win9X 上的最后版是8.2?
作者: fastslz     时间: 2006-6-17 15:57


  Quote:
Originally posted by qwe1234567 at 2006-6-17 12:01:
你还是先在自己的系统了试下把?

我是确定没问题了,DOS下、windows下用Ghost32都测试过了,虚拟机里没测试
作者: fastslz     时间: 2006-6-17 16:16


  Quote:
Originally posted by DOSforever at 2006-6-17 15:38:

我以前 ghost 一直用 DOS 版的,现在为了想看看这个 gdisk 找了个 Windows 版的安装,是8.3企业版。没想到居然提示我说不能安装在 Win9X 的机器上,甚至  ...

Win9X下用ghost32 (8.3)呀
企业版Ghost 9.0以上版本也就类似于以前的PowerQuest Drive Image
作者: DOSforever     时间: 2006-6-17 17:10
Re: fastslz
安装都不让我安装,我怎么用呢?就算你给我个 ghost32 ,并且是8.3版的,能在Win9X下用,但我要的是安装版呐。
作者: fastslz     时间: 2006-6-17 18:44
企业版Ghost 9.0 需要安装Microsoft .NET Framework支持的
作者: 不得不爱     时间: 2006-6-17 19:07
在DOS下要文件体积小的话可以用下面2个BAT文件寻找分区!
a.bat

  Quote:
@echo off
ghost -dd >NUL
set p=1
call b.bat 1 2 3 4 5 6 7 8 9 10
set p=2
call b.bat 1 2 3 4 5 6 7 8 9 10

b.bat

  Quote:
:1
TYPE GHSTSTAT.TXT|FIND /i "%p%:%1" >NUL
if errorlevel 1 goto 2
set disk%p%=%1
Shift
goto 1
:2


作者: fujianabc     时间: 2006-6-19 15:35


  Quote:
Originally posted by DOSforever at 2006-6-17 03:38 PM:

我以前 ghost 一直用 DOS 版的,现在为了想看看这个 gdisk 找了个 Windows 版的安装,是8.3企业版。没想到居然提示我说不能安装在 Win9X 的机器上,甚至  ...

ghost 8.3是企业版,只能在2k/xp pro以上的系统中安装,但安装完后可以提取ghost.exe ghost32.exe gdisk等需要的文件,放在win9x/nt/xp home下皆可运行。

ghost 8.2也是企业版,其完全版应该和ghost 8.3的完全版没多大区别,难道它可以在win 9x下安装(我没试过)?
作者: fastslz     时间: 2006-6-19 15:48


  Quote:
Originally posted by qwe1234567 at 2006-6-17 19:07:
在DOS下要文件体积小的话可以用下面2个BAT文件寻找分区!
a.bat


  Quote:
@echo off
ghost -dd >NUL
set p=1
call b.bat 1 2 3 4 5 6 7 8 9 10
set p=2
call b.bat 1 2 3 4 5 6 7 8 9 10



b.bat


  Quote:
:1
TYPE GHSTSTAT.TXT|FIND /i "%p%:%1" >NUL
if errorlevel 1 goto 2
set disk%p%=%1
Shift
goto 1
:2



强...这个完美了

也可以在a.bat利用echo创建b.bat到虚拟盘
作者: 不得不爱     时间: 2006-6-19 15:55
利用echo创建b.bat到虚拟盘还不如压缩相关的文件后,在释放到虚拟盘来的好!
作者: amao     时间: 2006-6-24 05:00


  Quote:
Originally posted by qwe1234567 at 2006-6-17 19:07:
在DOS下要文件体积小的话可以用下面2个BAT文件寻找分区!
a.bat

b.bat

好是好,但是没有考虑某些情况。比如,某一个硬盘分为5个分区,但是第一或第二或第三或第四个分区没有格式化,而第五个分区格式化的情况。
作者: amao     时间: 2006-6-24 05:01


  Quote:
Originally posted by fastslz at 2006-6-9 20:58:
不用Gdisk,用ghost就行,dos之家葛站长不会嫌弃ghost的个头吧:P

@echo off
ghost -dd >NUL
:1
disk1=
TYPE GHSTSTAT.TXT|FIND /i "Key[1]   1:1" >NUL
if not erro ...

错误较多,而且没有考虑中间的某一个分区没有格式化的情况。
作者: amao     时间: 2006-6-24 05:12
我觉得寻找分区的问题,大家应该先定一个范围,比如每个硬盘最多10个分区,最多有有6个硬盘。要不然很容易忽视以下问题:
1. 硬盘中间的某个分区没有格式化。比如我第二个硬盘一共有5个分区,但是我第四个分区没有格式化。

2. 我一共有三个硬盘。第一个硬盘分好区了,但是第一个硬盘的所有分区都没有格式化。而第二或第三个硬盘的某些分区已经格式化了。

[ Last edited by amao on 2006-6-24 at 05:16 ]
作者: turkey     时间: 2006-11-27 07:22
AEFDISK 软件可以侦测出一个硬盘的各个分区格式。

http://www.aefdisk.com
下载的是AEFDISK2.2的未注册版,未注册版除了少数几个命令参数不支持以外,大多数功能还是可以使用的,没有什么大的影响。

其实AEFDISK还提供了变量可以侦测出每个分区的类型,哪个分区是活动分区,硬盘还有多少空间没有分区等等。

AEFDISK 1 /PTYPE:1
在变量PTYPE01中返回第一个分区的类型(11即0bh为FAT32,7为NTFS)

AEFDISK 1 /PTYPE:2
在变量PTYPE02中返回第2个分区的类型(11即0bh为FAT32,7为NTFS)
......

AEFDISK 1 /PUTACTIVE
在变量ACTIVE中返回活动分区数(如果为1则第一个分区为活动分区,2则第二个分区为活动分区)

AEFDISK 1 /freesize
在变量FREESIZE中返回硬盘1还未分区的空间(以兆为单位,如果为0则没有未分区的空间了)


这样比用GDISK或GHOST的方法要好,而且AEFDISK只有几十K大小,不占空间。

[ Last edited by turkey on 2006-11-27 at 07:37 AM ]
作者: donpps     时间: 2006-11-28 00:38    标题: 回复12楼无奈何老师

代码简洁,但是若第二磁盘,仅仅分为一个主分区,则计算有误,显示:
磁盘 0        含有 8 个分区
磁盘 1        含有 0 个分区
作者: 19951001     时间: 2006-12-19 00:29
可以试一下这个:
http://www.cn-dos.net/forum/viewthread.php?tid=24419&fpage=1

dpit 0 /l

如果需要我可以专门做一个版本,不显示EXTENDED
作者: tian88yuan     时间: 2010-5-29 11:19
『第 14 楼』:  批处理试过了 可以用
作者: f280402030     时间: 2010-5-29 11:32
虽然我不懂,但我要顶