Board logo

标题: 又来麻烦各位了,关于dos下活动主分区的判断。 [打印本页]

作者: lianjiang2004     时间: 2007-1-13 23:17    标题: 又来麻烦各位了,关于dos下活动主分区的判断。

又来麻烦各位了,关于dos下活动主分区的判断。

DOS下运行小工具dspt,输出的数据如下,如何用批处理获得活动主分区的分区号。
windows下可通过tokens来获得,dos下如何解决?请指点。
若有其它好方法也请指教。

-----------------------------------
Disk  Partitions  Cylinders  Heads  Sectors  TotalSectors   Mbytes
0       6         14593      255     63      234441648     114473
No.    Type     PartitionType    Active   StartSector    Sectors     MBytes
1   Primary        HPFS/NTFS     Yes      63            15438402    7538
2   Primary   Hide HPFS/NTFS              15438465      15293880    7467
3    Logic         HPFS/NTFS              30732408      20482812    10001
4    Logic         HPFS/NTFS              51215283      30732282    15005
5    Logic       Win95 FAT32              81947628      61448562    30004
6    Logic         HPFS/NTFS              143396253     91040292    44453
作者: zh159     时间: 2007-1-13 23:59
XP 下可以用type b.txt|find "Yes"找出来,不知道DOS下行不行
作者: lianjiang2004     时间: 2007-1-14 00:51
type b.txt|find "Yes"DOS下可用,问题是只能判断是否有活动分区,但是不能确定分区号。
因为要自动备份活动分区。
作者: zh159     时间: 2007-1-14 03:46
“1   Primary        HPFS/NTFS     Yes      63            15438402    7538”
分区号就是第一位数字,提取出来就OK了
作者: lianjiang2004     时间: 2007-1-14 06:19
怎么提取出来?
作者: lianjiang2004     时间: 2007-1-14 06:25
现在我只能象下面这样列举瞎蒙。
问题是这样的找法是否有通用性。

:nact
set actp=
type HD0.TXT|find /i "1     Primary        HPFS/NTFS     Yes" >nul
if errorlevel 1  goto nact2
set actp=1
goto lastp

:nact2
type HD0.TXT|find /i "2     Primary        HPFS/NTFS     Yes" >nul
if errorlevel 1  goto fact
set actp=2
goto lastp

:fact
set actp=
type HD0.TXT|find /i "1     Primary      Win95 FAT32     Yes" >nul
if errorlevel 1  goto fact2
set actp=1
goto lastp
作者: lianjiang2004     时间: 2007-1-14 23:35
难道没什么办法吗?