Board logo

标题: 请大家指教啊!我想做一只这样的启动盘。 [打印本页]

作者: copy114     时间: 2002-11-10 00:00    标题: 请大家指教啊!我想做一只这样的启动盘。
我想做一个可以引导的启动盘。当启动后就会利用虚拟内存建立一个虚拟盘,如Z盘,然后在虚拟盘上建立三个目录,如bin,abc,win,最后把我的img文件里面的几个压缩文件XX.cab自动解压到虚拟盘指定的目录上,我应该怎样做呢?请大家指教一下,还有,因为我是菜鸟,所以还是请大家详细的指教一下,可以吗?

作者: ko20010214     时间: 2002-11-10 00:00
请看一实例。 下面是autoexec.bat的内容:">>"后的是我现在加的注解 =================== @echo off >>这是关闭回显的命令。@是表示这条命令本身也不显示。 SET DIRCMD=/OGN /4 >>这是设置DIR命令的默认方式              >>/OGN参数表示按组目录的和名称顺序显示            >>/4参数表示年份按4位数字来表示。 set ramd=z      >>这是设置一个变量ramd,用来表示虚拟盘 set cdrom=x     >>这是设置一个变量cdrom,用来表示光驱 xmsdsk 8192 %ramd%: /y /t >>这是设置虚拟盘的命令 8192是指盘的大小为8M >> % ramd%:是指定虚拟盘的盘符为ramd,结合上面 >> ramd=z,即指定盘符为Z盘。/Y是确信这个操作       >>/t是指装载到XMS的高位(top) mkdir %ramd%:\temp   >>在虚拟盘上建立一个目录temp set tmp=%ramd%:\temp >>设置一个变量tmp set temp=%ramd%:\temp >>设置一个变量temp copy a:\command.com %ramd%:\ >nul >>复制A盘的command.com文件到虚拟盘, >> >NUL是指这个命令的屏幕信息输入到NUL这         >> 个特殊的设备上去,这是个空设备。所以就是 >>起到让这个命令不回显的作用。 set comspec=%ramd%:\command.com>>设置一个变量comspec,作用是指定           >>命令解释程序command.com的位置。 mkdir %ramd%:\bin    >>在虚拟盘上建立一个目录bin mkdir %ramd%:\doscmd >>在虚拟盘上建立一个目录doscmd set ebddir=%ramd%:\doscmd >>设置一个变量edddir,作用是指定ebd文件的目录 set path=%ramd%:\bin   >>设置一个变量path,作用是指定路径 copy a:\help.exe %ramd%:\bin >nul >>不回显地复制A盘的help.exe文件        >>到虚拟盘的bin目录里。 lh mscdex /D:MSCD001 /L:%CDROM% >>加载光驱驱动,lh是加载到高位内存里, >>/D:MSCD001,参数D是设备名称,这个设备名        >>是MSCD001,和你的config.sys里的名称应一致 copy a:\extract.exe %ramd%:\bin >nul >>不回显地复制A盘的extract.exe文件到虚                >>拟盘的bin目录里 echo Extracting device driver(s)...  >>显示一条信息 "Extracting device driver(s)..." >>意思是 正在解压设备驱动(文件)。。。 mkdir %ramd%:\device     >>在虚拟盘上建立一个目录device extract /y /l %ramd%:\device /e a:\scsi.cab >nul>>不回显地解压A盘的scsi.cab这个压            >>缩包到虚拟盘的device目录里。/Y参数表示            >>确认这个操作,/L参数表示将文件解压到            >>指定的目录里。这里是device目录里。 %ramd%:\device\device %ramd%:\device\btdosm.sys >>这里是加载各种驱动的命令 %ramd%:\device\device %ramd%:\device\flashpt.sys %ramd%:\device\device %ramd%:\device\btcdrom.sys /D:MSCD001 %ramd%:\device\device %ramd%:\device\aspi2dos.sys %ramd%:\device\device %ramd%:\device\aspi8dos.sys %ramd%:\device\device %ramd%:\device\aspi4dos.sys %ramd%:\device\device %ramd%:\device\aspi8u2.sys %ramd%:\device\device %ramd%:\device\aspicd.sys /D:MSCD001 extract /y /l %ramd%:\bin /e a:\menu.cab >nul >>不回显地解压A盘的menui.cab这 >> 个压缩包到虚拟盘的bin目录里 extract /y /l %ramd%:\doscmd /e a:\ebd.cab >nul >>不回显地解压A盘的ebd.cab这 >>个压缩包到虚拟盘的doscmd目录里 set path=%path%;%ramd%:\doscmd >>设置一个变量path,就是设置路径 >>用;来分隔多个路径,path=%path%的              >>意思是让现在的path变量(路径)的为              >>原来的路径,(;后面是新加进的路径)              >>整个意思是设置新路径为旧路径加上新              >>加入的路径 LH CTMOUSE >NUL    >>不回显地装载鼠标驱动到高位内存里 lh smartdrv >NUL     >>不回显地装载smartdrv到高位内存里 >>smartdrv是一个磁盘缓存驱动 ECHO.         >>echo后面加一个. 表示显示一空行 echo To view Help, type HELP and then press ENTER.>>显示一条信息        >>意思是 想看帮助的话,请键入Help并按回车键 echo.     >>echo后面加一个. 表示显示一空行 ====================== 文件内容完。 不知道这样讲你觉得行不行? :-)

[此贴子已经被作者于2002-11-10 21:51:00编辑过]


作者: ko20010214     时间: 2002-11-10 00:00
对应的comfig.sys文件如下: ================= DEVICE=UMBPCI.SYS DEVICE=HIRAM.EXE DEVICEHIGH=HIMEM.SYS /TESTMEM:OFF DEVICEHIGH=VIDE-CDD.SYS /D:MSCD001  >>加载光驱驱动 DEVICEHIGH=CLOAKING.EXE DOS=HIGH,UMB,AUTO SHELL=COMMAND.COM /P /E:2048 /U:128 /L:256 FILESHIGH=30 BUFFERSHIGH=30,0 STACKSHIGH=9,256 LASTDRIVEHIGH=Z ============== 文件内容完

作者: langhua     时间: 2002-11-10 00:00
恩!!! 我说KO 成呀!!!!!原来的在DOS方面也VERY GOOD呀!!! 看来我以后有什么问题叫直接找你了!!!!呵呵!!!

作者: copy114     时间: 2002-11-11 00:00
mkdir %ramd%:\temp   >>在虚拟盘上建立一个目录temp set tmp=%ramd%:\temp >>设置一个变量tmp set temp=%ramd%:\temp >>设置一个变量temp 我想问问这里,它在第一条不是建立了一个temp的目录了吗?而第三条又设置一个变量temp 这个变量是什么来的,是不是一个文件夹啊?

作者: ko20010214     时间: 2002-11-11 00:00
此temp非彼temp。 第一条上的temp,是个目录。我们习惯上命名为temp,而实际你可以任意命名它。 第二和第三条的tmp和temp,实际上是在DOS内部约定的一个变量,这个名称是不能改的。 在DOS内部约定了一系列的变量,用于环境设置。 象path,comspec,dircmd,等等。。。这就象编程语言中所讲的保留字一样。 而且这三条语句中,第一条和后面两条作用和意义不一样。 第一条是建立一个目录,这个目录叫temp 第二、三条是设置环境变量,让DOS在要用到临时目录时知道往哪里写临时数据

作者: copy114     时间: 2002-11-11 00:00
mkdir %ramd%:\device     >>在虚拟盘上建立一个目录device extract /y /l %ramd%:\device /e a:\scsi.cab >nul>>不回显地解压A盘的scsi.cab这个压            >>缩包到虚拟盘的device目录里。/Y参数表示            >>确认这个操作,/L参数表示将文件解压到            >>指定的目录里。这里是device目录里。 %ramd%:\device\device %ramd%:\device\btdosm.sys >>这里是加载各种驱动的命令 %ramd%:\device\device %ramd%:\device\flashpt.sys %ramd%:\device\device %ramd%:\device\btcdrom.sys /D:MSCD001 %ramd%:\device\device %ramd%:\device\aspi2dos.sys %ramd%:\device\device %ramd%:\device\aspi8dos.sys %ramd%:\device\device %ramd%:\device\aspi4dos.sys %ramd%:\device\device %ramd%:\device\aspi8u2.sys %ramd%:\device\device %ramd%:\device\aspicd.sys /D:MSCD001 这段我不要行不行啊?如果我是只加载CDROM的情况下。这些都是加载SCSI的光驱所需要的驱动程序来吗?

作者: ko20010214     时间: 2002-11-11 00:00
可以。你只要加载CDROM就只需lh mscdex /D:MSCD001 /L:%CDROM% >>加载光驱驱动这些驱动具体我也不知道是什么。大概是winme或winme以后的系统要的吧。。。(为了兼容???)

作者: copy114     时间: 2002-11-11 00:00
我明白了,谢谢版主的细心教导,我也学会不少东西了,不过还请版主也帮我解释一下那个config.sys的具体命令内容吧,麻烦你了, DEVICE=UMBPCI.SYS DEVICE=HIRAM.EXE DEVICEHIGH=HIMEM.SYS /TESTMEM:OFF DEVICEHIGH=VIDE-CDD.SYS /D:MSCD001  >>加载光驱驱动 DEVICEHIGH=CLOAKING.EXE DOS=HIGH,UMB,AUTO SHELL=COMMAND.COM /P /E:2048 /U:128 /L:256 FILESHIGH=30 BUFFERSHIGH=30,0 STACKSHIGH=9,256 LASTDRIVEHIGH=Z 我只知道这个是定义最后一个盘符是Z盘。其它的也不那么懂啊。请指教

作者: ko20010214     时间: 2002-11-12 00:00
SHELL=COMMAND.COM /P /E:2048 /U:128 /L:256 这一句难点。其它的wengier的网站里的DOS文章里有提到。 你可以在DOS下键入command/?获得帮助。实在不行,你可以去看我的《如何获得dos命令的帮助》一文来学会怎么获得dos命令的帮助!