中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-23 20:00
中国DOS联盟论坛 » DOS启动盘 & LOGO技术 (启动盘室) » 关于寻找硬盘最后分区的话题(或困惑) 查看 716 回复 3
楼 主 关于寻找硬盘最后分区的话题(或困惑) 发表于 2003-11-29 00:00 ·  中国 黑龙江 哈尔滨 联通
中级用户
新DOS时代绿色菜狼
积分 229
发帖 42
注册 2003-07-03 00:00
23年会员
UID 6341
性别 男
状态 离线
【基本】:
set lastdrv=
for %%i in (z y x w v u t s r q p o n m l k j i h g f e d c) do call chkdrv.bat %%i

其中chkdrv.bat如下:
if not %lastdrv%'==' goto _end
if %1'==' goto _end
if %1==%cdrom% goto _end
if %1==%RAMD% goto _end
dready %1 /w
if errorlevel 2 goto _end
set lastdrv=%1
:_end

【无忧启动盘配置】
@ECHO OFF
PROMPT $P$G
set temp=c:\
set tmp=c:\
SET EXPAND=YES
SET DIRCMD=/O:N
set LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15
set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C
call setramd.bat %LglDrv%
path=%RAMD%:\;%RAMD%:\BAT;%CDROM%:\;%CDROM%:\UCDOS;%CDROM%:\BOOT;A:\;C:\;
copy get.exe %RAMD%:\ > NUL
copy attrib.exe %RAMD%:\ > NUL
copy command.com %RAMD%:\ > NUL
copy edit.com %RAMD%:\ > NUL
copy format.com %RAMD%:\ > NUL
copy fdisk.exe %RAMD%:\ > NUL
copy deltree.exe %RAMD%:\ > NUL
copy restart.com %RAMD%:\ > NUL
copy readme.exe %RAMD%:\ > NUL
copy mouse.* %RAMD%:\ > NUL
copy xxcopy.exe %RAMD%:\ > NUL
rem copy extract.exe %RAMD%:\ > NUL
set comspec=%RAMD%:\command.com
LH MSCDEX.EXE /D:MSCD000 /L:%CDROM%

CDA %CDROM% > NUL
IF errorlevel 1 GOTO NEXTCD
IF NOT EXIST %CDROM%:\BOOT\TW.EXE GOTO NEXTCD
GOTO BOOT

:NEXTCD
CALL CHCDROM.BAT C D E F G H I J K L M N O P Q R S T U V W X Y Z
GOTO BOOT

:BOOT
LH ZENO.EXE /Q > NUL
LH SMARTDRV.EXE > NUL
LH KILLER.EXE > NUL
LH DOSKEY.COM /B=16 > NUL
LH PERUSE.COM /X16 > NUL
LH DOSLFN.COM /Z:CP936UNI.TBL > NUL
LH KEY.COM PY WB > NUL
Set LglDrv=

MD %RAMD%:\TEMP
XXCOPY /E /H %CDROM%:\BOOT\EBD %RAMD%:\ > NUL
%RAMD%:
CD \
LH MOUSE.COM > NUL
LH FINDCD.EXE > NUL
set lastdrv=
for %%i in (z y x w v u t s r q p o n m l k j i h g f e d c) do call chkdrv.bat %%i
MENU.BAT

【困惑】
为何%lastdrv%有时正确有时错误?为什么不能像%ramd%(或%ramdrv%)和%cdrom%那样准确?
2 发表于 2003-11-29 00:00 ·  加拿大 安大略省 多伦多
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
23年会员
UID 9
状态 离线
这个话题以前曾讨论过,是用一两条命令轻易实现的,根本就不用这么复杂。
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

3 发表于 2003-11-30 00:00 ·  中国 黑龙江 哈尔滨 联通
中级用户
新DOS时代绿色菜狼
积分 229
发帖 42
注册 2003-07-03 00:00
23年会员
UID 6341
性别 男
状态 离线
以下是引用Wengier在2003-11-29 21:46:33的发言:
这个话题以前曾讨论过,是用一两条命令轻易实现的,根本就不用这么复杂。

是用那两条命令,但作到无忧启动盘里找到的却是cdrom。试验时,是用软盘配置启动的,找到的是正确的。但刻录后就错误了。
4 发表于 2003-11-30 00:00 ·  加拿大 安大略省 多伦多
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
23年会员
UID 9
状态 离线
上回我说的可不是这几条命令吧!比如说下面的命令不知从何而来的,当然是不行的:

if not %lastdrv%'==' goto _end
if %1'==' goto _end
if %1==%cdrom% goto _end
if %1==%RAMD% goto _end
dready %1 /w

另外下面的所有命令用“超级MS-DOS 7.10启动盘”中的那个FINDRAMD代替就行了,而不用这么复杂,而且非常浪费启动时间:

set LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15
set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C
call setramd.bat %LglDrv%
...
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

论坛跳转: