中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-03 03:06
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 又来麻烦各位了,关于dos下活动主分区的判断。 查看 788 回复 6
楼 主 又来麻烦各位了,关于dos下活动主分区的判断。 发表于 2007-01-13 23:17 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
又来麻烦各位了,关于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
Windows 一键还原
http://www.yjhy.com
2 发表于 2007-01-13 23:59 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
XP 下可以用type b.txt|find "Yes"找出来,不知道DOS下行不行
3 发表于 2007-01-14 00:51 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
type b.txt|find "Yes"DOS下可用,问题是只能判断是否有活动分区,但是不能确定分区号。
因为要自动备份活动分区。
Windows 一键还原
http://www.yjhy.com
4 发表于 2007-01-14 03:46 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
“1 Primary HPFS/NTFS Yes 63 15438402 7538”
分区号就是第一位数字,提取出来就OK了
5 发表于 2007-01-14 06:19 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
怎么提取出来?
Windows 一键还原
http://www.yjhy.com
6 发表于 2007-01-14 06:25 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
现在我只能象下面这样列举瞎蒙。
问题是这样的找法是否有通用性。

: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
Windows 一键还原
http://www.yjhy.com
7 发表于 2007-01-14 23:35 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
难道没什么办法吗?
Windows 一键还原
http://www.yjhy.com
论坛跳转: