无忧启动论坛

标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句 [打印本页]

作者: chjhuai    时间: 2004-3-17 13:31
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
我是双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句使之能用*.bat调用副光驱中boot文件中的程序?我现在制作的启动盘只能在主光驱中调用,启动盘放在在副光驱中就不能正常调用!请高手指点!!!
作者: dzy    时间: 2004-3-17 14:04
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
老大:
    你的 CONFIG.SYS 和 AUTOEXEC.BAT 加载光驱的命令行怎么写的啊???
    你的两个光驱怎么定义的名称啊??
    麻烦提问问题长点智慧好吗???
    起码把问题说清楚!!
   
    要不大家一看你的帖子先晕了,怎么帮你??
作者: leebaker    时间: 2004-3-17 14:16
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
我都想知,帮up
作者: Climbing    时间: 2004-3-17 17:31
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
[UploadFile=34_971_3.rar]新版本的findcd.exe支持多光驱的,在启动光盘的autoexec.bat中加入这些命令(请将for那一行语句中的<AfileName>替换为你启动光盘上根目录下真实存在的一个文件名):
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\<AFileName> set cdrom=%%I
这样就将所有光驱都加入了搜索路径,并且将cdrom变量设置为指向你用来启动机器的那个光驱。
作者: chjhuai    时间: 2004-3-17 17:59
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
谢谢“笑傲江湖”
真正的高手哦!
作者: Climbing    时间: 2004-3-17 18:31
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
偶不叫“笑傲江湖”,偶叫Climbing,再说了,偶也不是高手,只是多了一些经验而已。
作者: hotla    时间: 2004-3-17 18:58
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
呵呵呵,支持!
作者: beidouking    时间: 2004-3-17 21:11
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
下面引用由Climbing2004/03/17 05:31pm 发表的内容:
新版本的findcd.exe支持多光驱的,在启动光盘的autoexec.bat中加入这些命令(请将for那一行语句中的<AfileName>替换为你启动光盘上根目录下真实存在的一个文件名):
findcd /s > nul
if "%cdrom% ...

能不能具体的讲解一下每句的意思
尤其是后面的参数
谢谢先

作者: chjhuai    时间: 2004-3-17 22:34
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
[UploadFile=34_971_8.jpg]^_^搞错了“笑傲江湖”是门派!!!能者为师,比我强的都是高手!!
确实需要把*.bat的文件复制上来!我看了下面的几个.bat文件,我的光驱好像不是用的findcd.exe,因此我就不知道怎样改这几个bat的文件了!!!!????
还要请高手帮忙指点指点,
下面是我的几个光驱相关的bat文件:
CONFIG.sys文件:
@echo off
device=oakcdrom.sys /D:mscd001
device=btdosm.sys
device=flashpt.sys
device=btcdrom.sys /D:mscd001
device=aspi2dos.sys
device=aspi8dos.sys
device=aspi4dos.sys
device=aspi8u2.sys
device=aspicd.sys /D:mscd001
devicehigh=ramdrive.sys /E 4096
files=15
buffers=20
dos=high,umb
stacks=9,256
lastdrive=z
AUTOEXEC.bat文件:
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 /L:%CDROM%
mouse
cls
lwt
在AUTOEXEC.bat文件中调用的setramd.bat 文件:
@echo off
set RAMD=
set CDROM=
echo.
echo Preparing to start your computer.
echo This may take a few minutes. Please wait...
echo.
a:\findramd
if errorlevel 255 goto no_ramdrive
if not errorlevel 3 goto no_ramdrive
goto do_shift
:loop
if errorlevel %1 goto no_shift
:do_shift
set cdrom=%2
shift
shift
if not %1*==* goto loop
goto no_ramdrive
:no_shift
set ramd=%2
if "%RAMD%"=="C" goto c_drive
goto success
:c_drive
echo Windows Millennium Edition has detected that drive C does not contain a valid
echo FAT or FAT32 partition. There are several possible causes.
echo.
echo 1.  The drive may need to be partitioned. To create a partition on the drive,
echo run FDISK from the MS-DOS command prompt.
echo.
echo 2.  You may be using third-party disk-partitioning software. If you are using
echo this type of software, remove the Emergency Boot Disk and restart your
echo computer. Then, follow the on-screen instructions to start your computer from
echo a floppy disk.
echo .
echo 3.  Some viruses also cause your drive C to not register. You can use a virus
echo scanning program to check your computer for viruses.
echo.
goto success
:no_ramdrive
echo The Windows Millennium Edition startup disk could not create a temporary drive
echo for the diagnostic tools. This may be because this computer has less than the
echo minimum required extended memory.
echo.
:success
应该怎样改才能用*.bat调用副光驱中boot文件中的程序?
作者: Climbing    时间: 2004-3-18 09:23
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
你用的是98启动盘,象这样的用法,恐怕只能找到一个光驱,我在这里倒真要请教,多个光驱的驱动该如何同时加载。
如果能够解决多个光驱的驱动加载问题,你可以在你的autoexec.bat中最后面加入我的语句,但一定要在这些语句前面加上一个:set cdrom=
作者: s210603    时间: 2004-3-18 09:37
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
mscdex /d:mscd000
不要 /l 参数,可以自动启动多个光驱。
config.sys 里,不要使用那么多的 cdrom 驱动,只使用一个通用的就好,我使用vide-cdd.sys ,效果很好。
另外,findcd 有一个批处理 findcd.bat :
@echo off
set cdrom=
set findcd=
set cdf=%1
findcd -f\%cdf% -e
if errorlevel 254 goto _find1
if errorlevel 0 set cdrom=A:
if errorlevel 1 set cdrom=B:
if errorlevel 2 set cdrom=C:
if errorlevel 3 set cdrom=D:
if errorlevel 4 set cdrom=E:
if errorlevel 5 set cdrom=F:
if errorlevel 6 set cdrom=G:
if errorlevel 7 set cdrom=H:
if errorlevel 8 set cdrom=I:
if errorlevel 9 set cdrom=J:
if errorlevel 10 set cdrom=K:
if errorlevel 11 set cdrom=L:
if errorlevel 12 set cdrom=M:
if errorlevel 13 set cdrom=N:
if errorlevel 14 set cdrom=O:
if errorlevel 15 set cdrom=P:
if errorlevel 16 set cdrom=Q:
if errorlevel 17 set cdrom=R:
if errorlevel 18 set cdrom=S:
if errorlevel 19 set cdrom=T:
if errorlevel 20 set cdrom=U:
if errorlevel 21 set cdrom=V:
if errorlevel 22 set cdrom=W:
if errorlevel 23 set cdrom=X:
if errorlevel 24 set cdrom=Y:
if errorlevel 25 set cdrom=Z:
set findcd=0
goto _end
:_find1
findcd -e -r
if errorlevel 254 goto _find2
if errorlevel 0 set cdrom=A:
if errorlevel 1 set cdrom=B:
if errorlevel 2 set cdrom=C:
if errorlevel 3 set cdrom=D:
if errorlevel 4 set cdrom=E:
if errorlevel 5 set cdrom=F:
if errorlevel 6 set cdrom=G:
if errorlevel 7 set cdrom=H:
if errorlevel 8 set cdrom=I:
if errorlevel 9 set cdrom=J:
if errorlevel 10 set cdrom=K:
if errorlevel 11 set cdrom=L:
if errorlevel 12 set cdrom=M:
if errorlevel 13 set cdrom=N:
if errorlevel 14 set cdrom=O:
if errorlevel 15 set cdrom=P:
if errorlevel 16 set cdrom=Q:
if errorlevel 17 set cdrom=R:
if errorlevel 18 set cdrom=S:
if errorlevel 19 set cdrom=T:
if errorlevel 20 set cdrom=U:
if errorlevel 21 set cdrom=V:
if errorlevel 22 set cdrom=W:
if errorlevel 23 set cdrom=X:
if errorlevel 24 set cdrom=Y:
if errorlevel 25 set cdrom=Z:
set findcd=1
goto _end
:_find2
findcd -e -a
if errorlevel 254 goto _end
if errorlevel 0 set cdrom=A:
if errorlevel 1 set cdrom=B:
if errorlevel 2 set cdrom=C:
if errorlevel 3 set cdrom=D:
if errorlevel 4 set cdrom=E:
if errorlevel 5 set cdrom=F:
if errorlevel 6 set cdrom=G:
if errorlevel 7 set cdrom=H:
if errorlevel 8 set cdrom=I:
if errorlevel 9 set cdrom=J:
if errorlevel 10 set cdrom=K:
if errorlevel 11 set cdrom=L:
if errorlevel 12 set cdrom=M:
if errorlevel 13 set cdrom=N:
if errorlevel 14 set cdrom=O:
if errorlevel 15 set cdrom=P:
if errorlevel 16 set cdrom=Q:
if errorlevel 17 set cdrom=R:
if errorlevel 18 set cdrom=S:
if errorlevel 19 set cdrom=T:
if errorlevel 20 set cdrom=U:
if errorlevel 21 set cdrom=V:
if errorlevel 22 set cdrom=W:
if errorlevel 23 set cdrom=X:
if errorlevel 24 set cdrom=Y:
if errorlevel 25 set cdrom=Z:
set findcd=2
:_end
set cdf=
虚拟盘可以用 xmsdsk.exe 很方便,可以指定虚拟盘符,使用 autoexec.bat 加载。就可以不使用 98的 RAM 驱动。

作者: chjhuai    时间: 2004-3-18 10:54
标题: 请教:双光驱怎样在“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驱动的问题,不能正常运行!

作者: Climbing    时间: 2004-3-18 11:09
标题: 请教:双光驱怎样在“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参数就全解决了(在上面我的帖子中提供有下载,你可以试用一下)。

作者: 紫狐    时间: 2004-3-18 11:18
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
下面引用由Climbing2004/03/18 11:09am 发表的内容:
谢谢指教,你的FindCD是老版本的,新版本的不用这么麻烦,一个/s参数就全解决了(在上面我的帖子中提供有下载,你可以试用一下)。

两个findcd根本就不是同个作者出的,那来新老版本之分?
作者: Climbing    时间: 2004-3-18 12:37
标题: 请教:双光驱怎样在“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等变量。
作者: chjhuai    时间: 2004-3-18 13:47
标题: 请教:双光驱怎样在“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
作者: Climbing    时间: 2004-3-18 13:59
标题: 请教:双光驱怎样在“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
作者: chjhuai    时间: 2004-3-18 14:25
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
我这个就是参照无忧的autoexec.bat
【你不能单纯只改autoexec.bat中的mscdex /d:mscd000,如果你没有改config.sys内容,最好还是改回去,因为两边是要对应的】是对应改的。
我再试试你这个autoexec.bat!
作者: Climbing    时间: 2004-3-18 14:40
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
试完了结果尽快通知我。
作者: dzy    时间: 2004-3-18 14:45
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
简单~~~~~~~~~
作者: chjhuai    时间: 2004-3-18 14:57
标题: 请教:双光驱怎样在“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:\
这是照搬无忧的是不是需要改!请指教!
作者: Climbing    时间: 2004-3-18 15:01
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
请在用你的启动光盘启动系统后进入DOS命令行方式,然后执行:
set > c:\vir.txt
dir %cdrom%\boot /s >> c:\vir.txt
然后把c:\vir.txt的内容贴上来。
作者: chjhuai    时间: 2004-3-18 15:39
标题: 请教:双光驱怎样在“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

作者: Climbing    时间: 2004-3-18 15:48
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
不对,你没有严格按照我给的autoexec.bat来做,怪不得你做出来的结果不对呢。按照正常的步骤来做的话,你的CDROM变量应该是等于E:的,而不是等于1,而且,你也没有多个光驱啊。
作者: chjhuai    时间: 2004-3-18 16:02
标题: 请教:双光驱怎样在“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
我这是在虚拟机上运行的当然只有一个光驱,我没有软驱,在电脑上要刻录成光盘才行,我昨天就刻录成光盘试过也不行的!

作者: chjhuai    时间: 2004-3-18 16:05
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
我再刻录成光盘试试!
作者: Climbing    时间: 2004-3-18 16:12
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
不用刻录成光盘,用VFloppy就可以测试了。
制做软盘映像,然后用VFoppy调用。
作者: chjhuai    时间: 2004-3-18 17:09
标题: 请教:双光驱怎样在“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中去!但是我原来没有加你给我的语句时是可以把启动盘放在主光驱中运行的!现在放在那个光驱都不行了!
作者: Climbing    时间: 2004-3-18 17:25
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
能不能把你的启动软盘映像完整的发给我,我帮你分析一下,或者把config.sys和autoexec.bat发过来也行。
作者: chjhuai    时间: 2004-3-18 22:30
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
我的config.sys和autoexec.bat在上面帖子中哦!我是拨号上网!而且主要是运行光盘中boot文件夹里面的文件!
我看了运行diskgen.bat的结果:本来应该是I:的地方现在用2:代替了(CDROM1=H:,CDROM2=I:)。而且不管启动盘是放在主光驱还是副光驱该是H:或I:的地方都是2:
如果太麻烦就算了!我用的时候只要注意把启动盘放在主光驱就是了!

作者: Climbing    时间: 2004-3-18 23:28
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
不是的,我感觉你贴上来的config.sys和autoexec.bat与你实际刻到光盘上的映像文件的config.sys和autoexec.bat内容上有出入,因为从你反映的结果来看,不是我想要的结果,也就是说程序不应该是这种结果的,但偏偏却是,所以我感觉很奇怪,因此要求你把你的映像文件中的config.sys和autoexec.bat原封不动的搬上来。
作者: chjhuai    时间: 2004-3-19 00:59
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
发过来了!帮我看看!
作者: Climbing    时间: 2004-3-19 08:08
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
找了半天,原来发到了我的邮箱。最简单的莫过于用rar打个包,通过本论坛的附件上传功能给我就行了。
作者: Climbing    时间: 2004-3-19 09:37
标题: 请教:双光驱怎样在“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

作者: chjhuai    时间: 2004-3-19 13:40
标题: 请教:双光驱怎样在“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

作者: Climbing    时间: 2004-3-19 14:00
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
成功了就好,恭喜!
作者: Climbing    时间: 2004-3-19 14:04
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
建议楼主将帖子标题修改为:[讨论]DOS下双(或多)光驱CDROM变量设置问题
作者: chjhuai    时间: 2004-3-19 21:21
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
就是就是!!!1
作者: Climbing    时间: 2004-3-20 15:50
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
下面引用由chjhuai2004/03/19 09:21pm 发表的内容:
就是就是!!!1
就是什么?你怎么还不改?
作者: ntcsj    时间: 2005-3-4 12:56
标题: 请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
借个地方问个问题,假如有两个光驱,如何用for 。。。 do if 。。。exist 语句来判断光盘放在哪个光驱,也就是说怎样判断哪个光驱里读出文件或目录?




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3