中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-10-26 15:06
共 47,815 主题排行 / 349,928 发帖 / 今日 0 篇 / 48,288 会员排行
DOS启动盘 & LOGO技术 (启动盘室) » 我己实现能查找硬盘最后的分区
可打印版本  1,519 / 6
第1楼 mafa3 发表于 2003-09-15 00:00
初级用户 发帖 7 积分 150
我己实现能查找硬盘最后的分区
必须配合 STRINGS.COM
XSET.EXE


http://www.ipdown.com/dosbbs/dispbbs.asp?boardID=11&ID=7049

第6楼


第2楼 cn_archer 发表于 2003-09-16 00:00
元老会员 发帖 991 积分 2,903 来自 福建省
怎么实现的,说说看吧
第3楼 mafa3 发表于 2003-09-16 00:00
初级用户 发帖 7 积分 150
问:如何得到光驱所在的盘符?

答:可以用本站“脚本工具”中的FINDCD程序来自动显示出光驱的盘符,例如FINCDCD命令就可以将当前光驱的盘符显示并放入环境变量%CDROM%中。另外,我编写了一个批处理文件,它会自动查找光驱所在的盘符,将结果显示出来并存入环境变量%CDROM%中。不过它需要两个批处理增强程序,Strings 2.5和XSET 5.47,均可在本站的“脚本工具”中下载。文件的内容如下:

@echo off
set dn=66
set cdrom=
:count
strings dn=add %dn%,1
strings dr=char %dn%
xset /search "CDROM" drv drivetest %dr%
if not %drv%#==# goto ok
if %dn%#==90# goto no
goto count
k
set cdrom=%dr%
echo The CD-ROM drive letter %cdrom% has been assigned to the variable "CDROM".
goto end
:no
echo No CD-ROM found!
:end
set dr=
set dn=
set drv=
echo.

此例中是判断光驱所在的盘符,若想判断其它存储设备(或内存盘等)所在的盘符,将上面文件中的"xset /search "CDROM" drv drivetest %dr%"行中的"CDROM"改为其它名称即可,例如对于内存盘即可用"RAM"来替换"CDROM"。

如果您有任何看法或建议的话,可以给我邮件或留言,谢谢!

一个非常强大的增强的SET命令,有几十种功能,除强大的字符操作,文件操作等功能以外,还能制作窗口,改变颜色,设置密码等.支持长文件名和Win3.x/9x/NT/2K/XP的DOS窗口.它的选项非常多,有全屏幕帮助(可直接用XSET命令进行,也可看它的帮助文件),比如XSET Dr DRIVETEST C就可以将驱动器C的详细状态,包括驱动器类型,比如是HARDDISK(即硬盘),FLOOPY(即软盘),CDROM(即光盘),RAM(即内存盘),SUBST(即虚拟盘),REMOTE(即远程驱动器)等等,以及它是否准备好,是否只读,是不是可移动磁盘等信息存入环境变量%DS%中.今年5月推出的最新版本.
第4楼 电吉入侵 发表于 2003-10-07 00:00
初级用户 发帖 377 积分 1,480
用一个DREADY就可以了,因为DOS只能识别FAT系统,如果是光驱看它写不写得入就可以排除...
第5楼 Wengier 发表于 2003-10-07 00:00
系统支持 发帖 10,521 积分 27,736
以下是引用电吉入侵在2003-10-7 9:50:37的发言:
用一个DREADY就可以了,因为DOS只能识别FAT系统,如果是光驱看它写不写得入就可以排除...


这有什么用,如果是写保护的软驱或只读的网络驱动器怎么办?
第6楼 绿叶林 发表于 2003-10-08 00:00
初级用户 发帖 4 积分 112
还有一个问题,DOS下认盘符好象是先认主分区再认扩展分区中的逻辑分区。

比如:有一个40G的硬盘,分区如下:(都是FAT32的)
   第1分区:10G 主分区(活动)
   第2分区:25G 扩展分区 (再分两个逻辑分区:10G、15G)
   第3分区:5G  主分区

在DOS下应该是这样认分区盘符的:
   第1分区:10G 主分区(活动)  ----> C:
   第2分区:25G 扩展分区 (再分两个逻辑分区:10G、15G) --->E: F:   
   第3分区:5G  主分区      ----> D:

所以:
   最后一个盘符 F ,并不是最后的分区。
  
   *实际上,最后一个分区的盘符应该是D


第7楼 绿叶林 发表于 2003-10-08 00:00
初级用户 发帖 4 积分 112
我个人认为:

  最好的方法应该从分区表入手!
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023