无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 6336|回复: 39
打印 上一主题 下一主题

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

[复制链接]
跳转到指定楼层
1#
发表于 2004-3-17 13:31:42 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我是双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句使之能用*.bat调用副光驱中boot文件中的程序?我现在制作的启动盘只能在主光驱中调用,启动盘放在在副光驱中就不能正常调用!请高手指点!!!
40#
发表于 2005-3-4 12:56:45 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

借个地方问个问题,假如有两个光驱,如何用for 。。。 do if 。。。exist 语句来判断光盘放在哪个光驱,也就是说怎样判断哪个光驱里读出文件或目录?
回复

使用道具 举报

39#
发表于 2004-3-20 15:50:09 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

下面引用由chjhuai2004/03/19 09:21pm 发表的内容:
就是就是!!!1
就是什么?你怎么还不改?
回复

使用道具 举报

38#
 楼主| 发表于 2004-3-19 21:21:46 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

就是就是!!!1
回复

使用道具 举报

37#
发表于 2004-3-19 14:04:02 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

建议楼主将帖子标题修改为:[讨论]DOS下双(或多)光驱CDROM变量设置问题
回复

使用道具 举报

36#
发表于 2004-3-19 14:00:28 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

成功了就好,恭喜!
回复

使用道具 举报

35#
 楼主| 发表于 2004-3-19 13:40:51 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

[UploadFile=34_971_34.jpg]成了!!万分感谢!!!!我的启动盘现在完美了!!!^_^
我已刻录成光盘试过了!不管是启动盘放在主光盘还是副光盘都能用*.bat正常调用光盘根目录的程序!!!
这是运行vir的结果如下:
PROMPT=$P$G
EXPAND=YES
DIRCMD=/O:N
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 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
RAMD=G
TEMP=c:\
TMP=c:\
COMSPEC=G:\command.com
CDROM1=H:
CDROM2=I:
PATH=G:\;A:\;C:\WINDOWS;C:\WINDOWS\COMMAND;;H:\;I:\;
BOOTCD=I:
CDROM=I
CMDLINE=FINDCD /s
CDROM=2
CDROM1=H:
CDROM2=I:
盘卷在驱动器 A 无卷标
盘卷序列号为 2F9B-0581
回复

使用道具 举报

34#
发表于 2004-3-19 09:37:34 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

[UploadFile=34_971_33.rar][这个贴子最后由Climbing在 2004/03/19 09:46am 第 1 次编辑]

找了半天原因,终于发现了故障根源。
1、你发过来的文件仍然是原始版本,没有将加入我的语句的autoexec.bat发过来。
2、故障的根本原因是:在你调用应用程序的*.bat中,例如diskgen.bat中,你使用的CDROM变量是不带冒号的,而我们设置的CDROM变量都加上了冒号,也就是说,假设你的光驱在F:,那么我的程序会 set CDROM=F:,而你却需要CDROM=F。解决这个问题的办法有两个,第一个:修改你的所有批处理,使用带冒号的CDROM变量,另外一个办法就是将CDROM设置成不带冒号的盘符。考虑到后一种方案比较简单,于是我重新编写了你的autoexec.bat,随附件发上。将附件中的autoexec.bat解出来覆盖你原来的即可,不用修改其它的内容。另外,要保证该批处理运行正常,务必你的启动光盘在放在光驱中(无论哪个光驱都可以),并且一定要保证光盘boot\diskgen目录下存在diskgen.exe文件。
3、另外,在测试时发现一个有趣的问题,不能通过检测光盘上存在某个目录而检测哪个光驱中有你需要的光盘,一定要通过检测光盘上是否存在某个文件才行。有兴趣的可以试一下。
在上面的例子中,我开始使用if exist %%I\BOOT\NUL来检测,运行不正常,后来改成了IF exist %%I\BOOT\DISKGEN\DISKGEN.EXE才解决了问题。
新的AUTOEXEC.BAT内容:
@ECHO OFF
set path=c:\windows;c:\windows\command
\hibinv.exe
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
cls
call setramd.bat %LglDrv%
set temp=c:\
set tmp=c:\
set path=%RAMD%:\;a:\;%path%;
copy command.com %RAMD%:\ > NUL
set comspec=%RAMD%:\command.com
copy extract.exe %RAMD%:\ > NUL
copy xxcopy.exe %RAMD%:\ > NUL
%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > NUL
LH %ramd%:\MSCDEX.EXE /D:mscd001
if not %CDROM%*==* set CDROM=
if not %CDROM%*==* set CDROM=
findcd /s > nul
if "%cdrom%"=="1" set path=%path%;%cdrom1%\;
if "%cdrom%"=="2" set path=%path%;%cdrom1%\;%cdrom2%\;
if "%cdrom%"=="3" set path=%path%;%cdrom1%\;%cdrom2%\;%cdrom3%\;
IF NOT %CDROM%*==* set CDROM=
IF NOT %CDROM%*==* set CDROM=
SET BOOTCD=
for %%I in (%cdrom1%,%cdrom2%,%cdrom3%) DO if exist %%I\BOOT\DISKGEN\DISKGEN.EXE set BOOTCD=%%I
IF %BOOTCD%*==* goto _nobootcd
for %%I in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) DO if %BOOTCD%==%%I: set CDROM=%%I
goto _findbootcdok
:_nobootcd
echo.
echo Error: I cannot find your CDROM where we boot from!
echo Please make sure you insert the boot disc in it!
pause
:_findbootcdok
mouse
cls
lwt
回复

使用道具 举报

33#
发表于 2004-3-19 08:08:17 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

找了半天,原来发到了我的邮箱。最简单的莫过于用rar打个包,通过本论坛的附件上传功能给我就行了。
回复

使用道具 举报

32#
 楼主| 发表于 2004-3-19 00:59:13 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

发过来了!帮我看看!
回复

使用道具 举报

31#
发表于 2004-3-18 23:28:32 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

不是的,我感觉你贴上来的config.sys和autoexec.bat与你实际刻到光盘上的映像文件的config.sys和autoexec.bat内容上有出入,因为从你反映的结果来看,不是我想要的结果,也就是说程序不应该是这种结果的,但偏偏却是,所以我感觉很奇怪,因此要求你把你的映像文件中的config.sys和autoexec.bat原封不动的搬上来。
回复

使用道具 举报

30#
 楼主| 发表于 2004-3-18 22:30:42 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

我的config.sys和autoexec.bat在上面帖子中哦!我是拨号上网!而且主要是运行光盘中boot文件夹里面的文件!
我看了运行diskgen.bat的结果:本来应该是I:的地方现在用2:代替了(CDROM1=H:,CDROM2=I:)。而且不管启动盘是放在主光驱还是副光驱该是H:或I:的地方都是2:
如果太麻烦就算了!我用的时候只要注意把启动盘放在主光驱就是了!
回复

使用道具 举报

29#
发表于 2004-3-18 17:25:06 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

能不能把你的启动软盘映像完整的发给我,我帮你分析一下,或者把config.sys和autoexec.bat发过来也行。
回复

使用道具 举报

28#
 楼主| 发表于 2004-3-18 17:09:25 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

这个VFoppy当真实软驱使用?哪天试试!
我已刻录成光盘试过了,不管放在主光驱还是副光驱都不能运行!
这是运行vir的结果:
PROMPT=$P$G
EXPAND=YES
DIRCMD=/O:N
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 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
RAMD=G
PATH=G:\;A:\;C:\WINDOWS;C:\WINDOWS\COMMAND;H:\;
COMSPEC=G:\command.com
CDROM=2
CDROM1=H:
CDROM2=I:
CMDLINE=tw/q
TEMP=C:\
TMP=C:\
Volume in drive A has no label
Volume Serial Number is 2F9B-0581
这是启动盘放在副光驱运行vir的结果,我看盘符是正确的哦!
就是在执行我的diskgen.bat文件的时候没有把diskgen.exe文件拷贝到G:\TEMP中去!但是我原来没有加你给我的语句时是可以把启动盘放在主光驱中运行的!现在放在那个光驱都不行了!
回复

使用道具 举报

27#
发表于 2004-3-18 16:12:06 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

不用刻录成光盘,用VFloppy就可以测试了。
制做软盘映像,然后用VFoppy调用。
回复

使用道具 举报

26#
 楼主| 发表于 2004-3-18 16:05:54 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

我再刻录成光盘试试!
回复

使用道具 举报

25#
 楼主| 发表于 2004-3-18 16:02:23 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

完全复制的你的bat
@ECHO OFF
path c:\windows;c:\windows\command
\hibinv.exe
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
cls
call setramd.bat %LglDrv%
set temp=c:\
set tmp=c:\
path=%RAMD%:\;a:\;%path%;%CDROM%:\;
copy command.com %RAMD%:\ > NUL
set comspec=%RAMD%:\command.com
copy extract.exe %RAMD%:\ > NUL
copy xxcopy.exe %RAMD%:\ > NUL
%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > NUL
LH %ramd%:\MSCDEX.EXE /D:mscd000
set cdrom=
findcd /s > nul
if "%cdrom%"=="1" set path=%path%;%cdrom1%:\;
if "%cdrom%"=="2" set path=%path%;%cdrom1%:\;%cdrom2%:\;
if "%cdrom%"=="3" set path=%path%;%cdrom1%:\;%cdrom2%:\;%cdrom3%:\;
set cdrom=
for %%I in (%cdrom1%,%cdrom2%,%cdrom3%) DO if exist %%I\BOOT\nul set cdrom=%%I
mouse
cls
lwt
我这是在虚拟机上运行的当然只有一个光驱,我没有软驱,在电脑上要刻录成光盘才行,我昨天就刻录成光盘试过也不行的!
回复

使用道具 举报

24#
发表于 2004-3-18 15:48:23 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

不对,你没有严格按照我给的autoexec.bat来做,怪不得你做出来的结果不对呢。按照正常的步骤来做的话,你的CDROM变量应该是等于E:的,而不是等于1,而且,你也没有多个光驱啊。
回复

使用道具 举报

23#
 楼主| 发表于 2004-3-18 15:39:11 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

来了:
PROMPT=$P$G
EXPAND=YES
DIRCMD=/O:N
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 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
RAMD=D
TEMP=c:\
TMP=c:\
PATH=D:\;A:\;C:\WINDOWS;C:\WINDOWS\COMMAND;E:\;
COMSPEC=D:\command.com
CDROM=1
CDROM1=E:
CMDLINE=key py lx wb
盘卷在驱动器 A 无卷标
盘卷序列号为 2F9B-0581
回复

使用道具 举报

22#
发表于 2004-3-18 15:01:27 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

请在用你的启动光盘启动系统后进入DOS命令行方式,然后执行:
set > c:\vir.txt
dir %cdrom%\boot /s >> c:\vir.txt
然后把c:\vir.txt的内容贴上来。
回复

使用道具 举报

21#
 楼主| 发表于 2004-3-18 14:57:05 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

还是不行哦!(启动盘在主光驱都不能运行了)
是不是我的*.bat文件也要改!比如要运行diskgen.exe(在光盘boot\diskgen\diskgen.exe)我的diskgen.bat如下:
set temp=%RAMD%:\
set tmp=%RAMD%:\
XXCOPY /E /H /Z /YY %CDROM%:\BOOT\DISKGEN %RAMD%:\TEMP > NUL
tw/q
%RAMD%:
CD \TEMP
DISKGEN.EXE
set temp=C:\
set tmp=C:\
这是照搬无忧的是不是需要改!请指教!
回复

使用道具 举报

20#
发表于 2004-3-18 14:45:39 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

简单~~~~~~~~~
回复

使用道具 举报

19#
发表于 2004-3-18 14:40:26 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

试完了结果尽快通知我。
回复

使用道具 举报

18#
 楼主| 发表于 2004-3-18 14:25:13 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

我这个就是参照无忧的autoexec.bat
【你不能单纯只改autoexec.bat中的mscdex /d:mscd000,如果你没有改config.sys内容,最好还是改回去,因为两边是要对应的】是对应改的。
我再试试你这个autoexec.bat!
回复

使用道具 举报

17#
发表于 2004-3-18 13:59:46 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

你用的好象是无忧启动盘吧?
你不能单纯只改autoexec.bat中的mscdex /d:mscd000,如果你没有改config.sys内容,最好还是改回去,因为两边是要对应的。
你试试我修改过的这个Autoexec.bat:
@ECHO OFF
path c:\windows;c:\windows\command
\hibinv.exe
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
cls
call setramd.bat %LglDrv%
set temp=c:\
set tmp=c:\
path=%RAMD%:\;a:\;%path%;%CDROM%:\;
copy command.com %RAMD%:\ > NUL
set comspec=%RAMD%:\command.com
copy extract.exe %RAMD%:\ > NUL
copy xxcopy.exe %RAMD%:\ > NUL
%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > NUL
LH %ramd%:\MSCDEX.EXE /D:mscd001
set cdrom=
findcd /s > nul
if "%cdrom%"=="1" set path=%path%;%cdrom1%:\;
if "%cdrom%"=="2" set path=%path%;%cdrom1%:\;%cdrom2%:\;
if "%cdrom%"=="3" set path=%path%;%cdrom1%:\;%cdrom2%:\;%cdrom3%:\;
set cdrom=
for %%I in (%cdrom1%,%cdrom2%,%cdrom3%) DO if exist %%I\BOOT\nul set cdrom=%%I
mouse
cls
lwt
回复

使用道具 举报

16#
 楼主| 发表于 2004-3-18 13:47:19 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

findcd.exe  还有这么多讲究?我的dos里面是findcd.exe  2003-7-12的!
Climbing 大侠提供的是2003-4-8的不知道应该用那个?
我按Climbing 大侠提供的语句加到我的AUTOEXEC.bat(如下)后现在是主光驱的boot中的程序都不能用*.bat调用了,也把mscd001改成了mscd000没有差别!还请大侠教我!!!
@ECHO OFF
path=c:\windows;c:\windows\command
\hibinv.exe
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
cls
call setramd.bat %LglDrv%

set temp=c:\
set tmp=c:\
path=%RAMD%:\;a:\;%path%;%CDROM%:\;%CDROM1%:\;%CDROM2%:\;%cdrom3%:\
copy command.com %RAMD%:\ > NUL
set comspec=%RAMD%:\command.com
copy extract.exe %RAMD%:\ > NUL
copy xxcopy.exe %RAMD%:\ > NUL
%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > NUL
LH %ramd%:\MSCDEX.EXE /D:mscd000 /L:%CDROM%
set cdrom=
findcd /s > nul
if "%cdrom%"=="1" set path=%path%;%cdrom1%:\;
if "%cdrom%"=="2" set path=%path%;%cdrom1%:\;%cdrom2%:\;
if "%cdrom%"=="3" set path=%path%;%cdrom1%:\;%cdrom2%:\;%cdrom3%:\;

mouse
cls
lwt
回复

使用道具 举报

15#
发表于 2004-3-18 12:37:33 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

不错,不过大家都当作findcd来用,而且出品的日期不同,就算作是前后不同的版本吧,我这里发现了三个版本的Findcd。
findcd.com   是Bart出品的,但只能查找第一个光驱,直接设置cdrom变量
findcd.exe   不知道作者的版本,也就是我所说的老版本,不知道这个findcd支持不支持多光驱,但它返回的是0-25、255三个errorlevel值,还要加额外的语句判断才行。
findcd.exe  这是我所说的新版,这好象是DOS论坛的Wengier的产品,应该说是最先进的,支持多光驱查找,且直接设置cdrom、cdrom1、cdrom2、cdrom3等变量。
回复

使用道具 举报

14#
发表于 2004-3-18 11:18:45 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

下面引用由Climbing2004/03/18 11:09am 发表的内容:
谢谢指教,你的FindCD是老版本的,新版本的不用这么麻烦,一个/s参数就全解决了(在上面我的帖子中提供有下载,你可以试用一下)。

两个findcd根本就不是同个作者出的,那来新老版本之分?
回复

使用道具 举报

13#
发表于 2004-3-18 11:09:39 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

下面引用由s2106032004/03/18 09:37am 发表的内容:
mscdex /d:mscd000
不要 /l 参数,可以自动启动多个光驱。
config.sys 里,不要使用那么多的 cdrom 驱动,只使用一个通用的就好,我使用vide-cdd.sys ,效果很好。
另外,findcd 有一个批处理 findcd.bat :
...
谢谢指教,你的FindCD是老版本的,新版本的不用这么麻烦,一个/s参数就全解决了(在上面我的帖子中提供有下载,你可以试用一下)。
回复

使用道具 举报

12#
 楼主| 发表于 2004-3-18 10:54:36 | 只看该作者

请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句

我是用的winme的dos8.0启动盘,CONFIG.sys文件和setramd.bat 文件是基本照搬的。AUTOEXEC.bat文件是参照《无忧启动》改的!
我不懂这些文件中的参数的意义!我是反复改了无数次才能正常启动的。
我的启动盘也是参照《无忧启动》在光盘建了一个boot的目录,在dos中建立*.bat文件调用运行boot中的dos工具文件。
现在的问题是只能把我的启动盘放在主光驱才能在A:下输入相关的*.bat文件名调用boot中的文件,启动盘放在副光驱就不行!启动盘如果在副光驱就只能进入副光驱的盘符直接运行boot\*.exe。这样的话我的启动盘就失去意义了。
能不能简单改一下我的上述几个启动文件使之能在A:下输入相关的*.bat文件名调用运行boot中的文件!?如果要改cdrom驱动改的地方太多了,我根本就改不来。
我试过Climbing 大侠说的方法,不知道是我加入语句的地方不对还是我的cdrom驱动的问题,不能正常运行!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-4 20:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表