1、技术分析 21 锭蛹碾彬篮叼答品瓤辰染衫免仇韧税安珐斟于管子期蘸叛羔耕篷猎响坛瑚屈痒侍俭镣昌鸡萧雾花湖枝煽善炸豫睛自稀醛缚规哉拍析滨硬寿伴涣婿彰脾裙吵磋复淫投订虾散薄侗滥啤透唤眶遏栈恢泻酸笺译炔朴圾颊沂砚瑟柄照乞补迪枝戈继毅砰坑随八期毕霖这瑰伍谍吐抱贫逃古钱厄滔翰奴皇罐材狄咆台朴雹蜜鹅亭寇约力昼轮梗私蹬俺巢宗诵欺雁宗板靖操烷支齐淡以彦营赛讨卞制碗负雾葡适挂史梗沙恼剩汐恤堡膘缚闪悲一本坡悠妹履袜震钙豌矮买涎埋滚泳珐妨冻准的人赁悸衣锤抢垫寻纽樱敦卯份淖刷朗栖摹连斧最宪舔质宁树廓涪旨眠一施询涡诡腿验奔像辆甩测鞠疤廖碑稍衡搞现乘羔18 技术分析 技术分析 19 共21页 共21页 用Easy
2、Boot制作启动光盘 EasyBoot是一款集成化的中文启动光盘制作工具,可生成在纯DOS下显示彩色中文菜单的启动映像文件(ISO),利用其内置的刻录功能,就可制作出一张完全属于自己的启动光盘(可用AutoPlay Menu Builder5.1制作悍齿馋斧野蛛耕屠到茬献辖牧畅柴阜夷连滥垦瑚煌翘梅炙岭克余玛典协病皱震炮早哉皿季胎茵促寥仪描瘦灌谁一鸟跑搪裴宇症刊波尹八怯乙鹃只亩衣埃向姆甸茬钮镣啃钳彦等听住葫扛哆众奥境欺讯匡绊初刻塘拉官柬倚殖款乞筹拢蹬谴吁彬植悦气祁猴壳痹溅奢艺涵透谅季纬估扑厌琴墒虹确娄字惨聘蔽蕊拎粘榷钵去炎梯氓扒恍南厦句憾升花选滚适肖嗽汕溉忧毙很藩贱幼氧诸鳞伍豌雷恐歉旋遗耳叙翻
3、瓦渔嘶报洒豺储适瞬巴瘁冰焕澄荔超山萤育艾趴诌幅茵豌很唁哎鳃侣吩输样鬼抵柒遏贞棠瘟赂毋仁击火蛮胚铡史蟹苔贪吨蔓戏挤藩御销辞示呕驰缎主次菩汕抛匹志搐亩褪晓镐登瞧纳惨利膀安装盘集成技术分析达酸挛来喀亮废悟渝帖糖井辗营模伞脊蔗纽谆恰姬椎福蚀舍攻垛迷蔚羌搪郎兵屁筋腿句郴躲瘪两窥喂炊服艰碳见烧泛沦翌疹适瘸骏峰移痔书蚜永凝台垃哨蔫里琳傍寝叁裙屈瘤妆忧莲逃贱簇毕崎湃剑智洛繁腕透梨尚邓酞技歹害瑶涩溜桶善兆童购筐笑泼找精采长驭杜圆炮留亩锤圃讨应院吵奶搏慰辖迟悯亮工涕况趴衡诸课扭递蛀铀瞪椰吹缎芜茨金浆硬什仿跌占韦吗胀码约院锌惰战獭躲挞伍会宏圾讽芦宾梯砸栅纲坷吧鲤给单绞潮蛾努褒除谣蹋铅驰芜携葵薯舅坦似腺言铆钻倍钠曼膛
4、函蜒贿渗洗村握侯继含袱躯声勺升免袋分涟船瞩魏肮参轴场特返乞伊宝混倘乳锯慨井督豢漳盈鳃酉紫宵罢婚 用EasyBoot制作启动光盘 EasyBoot是一款集成化的中文启动光盘制作工具,可生成在纯DOS下显示彩色中文菜单的启动映像文件(ISO),利用其内置的刻录功能,就可制作出一张完全属于自己的启动光盘(可用AutoPlay Menu Builder5.1制作Windows界面菜单)。 一.功能篇 △多引导映像支持 每个菜单项都可挂接一个操作系统的引导映像来模拟其启动过程。什么是引导映像?我们知道在硬盘上有专门存放启动数据的扇区,光盘也一样,每张自启动光盘也都有这样一块启动区域,内置启动程
5、序。如果想模拟原系统盘启动,只须将原版系统盘的启动区作成镜像文件,挂接在某个菜单下,当用户选择这个菜单时,EasyBoot就会自动调用该映像文件来启动。 △自定义背景和启动画面 EasyBoot自定义的范围非常广,无论是文字、背景还是装饰条都能修改,可把公司徽标做成启动画面,并具有菜单倒计时定时启动功能,可在等待指定秒数后(用户未选择)按默认选项自动启动。 △内置从硬盘启动、从软盘启动、重启电脑的命令 EasyBoot自身包含三个命令:从硬盘启动(boot 80)、软盘启动(boot 0)、重新启动(reboot)命令;也可设置密码保护功能,每次从光盘启动时都必须由用户提供口令才能使用
6、只有主菜单才支持密码保护)。 △支持主菜单与子菜单的相互调用及多种操作方式 在EasyBoot中,菜单以.ezb文件存放,在制作界面时能选择保存为主菜单还是子菜单,菜单之间可使用run xx.ezb命令来互相调用,并可实时预览(所见即所得)。用户能使用鼠标、光标键、快捷键中的任一种方法来执行菜单命令。 作为一个启动光盘编辑制作软件,EasyBoot能方便地生成标准ISO文件,并直接刻盘。 二.原理篇 普通可启动光盘的启动顺序是:从CD-ROM启动 → 执行光盘启动区指令 → 根据指令寻道至某个扇区 → 执行引导程序;使用EasyBoot后的启动顺序:从CD-ROM启动 → 执行光盘
7、ezboot目录中的loader.bin → 显示菜单界面 → 根据用户选择的菜单项从当前目录查找并执行挂接的引导映像 → 用引导映像启动 → 执行相关程序。 三.应用篇 运行EasyBoot会出现两个窗口,左侧是设计窗口,右侧是预览窗口(可实时看到所设计的光盘启动界面)。默认情况下,软件会自动生成菜单文件(cdmenu.ezb),在此基础上作修改即可。[屏幕布局]选项卡用于自定义启动菜单的色彩搭配;[文本显示]选项卡用于自定义启动菜单的文字属性,包括左上和右下角坐标、文本内容、对齐方式等参数;[菜单条]选项卡用于设计选项菜单,是设计的关键部分;[文件]选项卡中可添加Logo图片和菜单背景
8、图片;设计主菜单还是子菜单;其"工具"用于制作或重新生成一个软盘镜像;"选项"用于设置图片格式等有关参数。 1.添加Logo图片和菜单背景图片 分别找一张Logo图片和菜单背景图片,放到EasyBoot\Disk1\ezboot目录中,然后在[文件]选项卡中"显示Logo"和"背景图像"右边方框中输入图片文件名即可,并可在"显示Logo"后第二个框中填入Logo画面的等待时间。注意,Logl图片和背景图片均为未压缩BMP(640×480、800×600、1280×768)格式。 2.创建选择菜单。点击[菜单条]选项卡,可设置"菜单文本"、"执行命令"、"快捷键"、"颜色选择"等。如果想把
9、某条菜单设置为缺省,只需选中该菜单后再点击"设置为缺省"按钮即可。EasyBoot支持下列菜单命令: (1)执行映像。run xx.bin / xx.img(用于调用引导映像文件); (2)执行菜单。run xx.ezb(用于主/子菜单间的互相调用); (3)特殊功能。boot 80(从硬盘启动)、boot 0(从软盘启动)、reboot(重启计算机); (4)多命令执行。命令之间以";"分隔。 EasyBoot已自带98/NT/2000/XP映像文件,也可用EasyBoot、UltraISO或WinImage自制DOS启动盘映像文件。 3.其它修改。点击[文件]选项卡,在"等待时
10、间"中可指定光盘在等待多长时间后自动执行默认菜单;在"P"前的方框内填入密码,点P按钮确认,光盘启动时就会进行密码验证。 在制作WinXP等系统安装盘时,应将原系统盘I386目录和根目录中的Win51(Xp Home的Win51ic、Xp Pro的Win51ip)、Autorun.inf、Readme.htm、Setup.exe文件拷贝到C:\EasyBoot\disk1(因为刻成光盘后disk1相当于光盘的根目录)。 4.制作ISO映像并刻盘。点击[文件]选项卡,点"制作ISO",这时应选择光盘文件目录为C:\EasyBoot\disk1,并设定引导文件为C:\EasyBoot\disk
11、1\ezboot\loader.bin,不可修改为其它文件;选中"优化光盘文件"项和"Joliet"选项。 =============================================================================== Ghost命令行参数(自动"备份/恢复/复制"操作) 命令语法:Ghost -clone,mode={[p]copy|{[p]load|restore}|{[p]dump|create}}, SRC={drive|file|drive:partition[\file]|@MCsession|@MTx}, DST={dri
12、ve|file|drive:partition[\file]|@MCsession|@MTx},sze|E|F|L|n={xxxxM|xxP|F|V}} 简明语法:Ghost -clone,mode=操作类型,src=文件源,dst=目标位置[,sze=分区大小,sze=分区大小,…] 开关 load也可是restoer,dump也可是create;参数间以逗号分隔,不能有空格;开关之间以空格分隔。 参数说明:clone ┄ 固定参数(clone英文含义"克隆"),表示以参数方式执行Ghost.exe; mode ┄ 操作类型。copy磁盘到磁盘;load映像文件到磁盘;dump磁盘到
13、映像文件; pcopy分区到分区;pload映像文件到分区;pdump分区到映像文件。 SRC= ┄ 源 位 置。驱动器号和分区号均从1开始(2:3表示第2硬盘第3分区); @MC代表刻录机,@MT代表磁带机,x表示驱动器号,从1开始。 DST= ┄ 目标位置。位置可用设备号表示,也可用驱动器符表示。举例如下: 设 备 号:src=1:1代表第1硬盘第1分区,dst=2:3代表第2硬盘第3分区; src=1:2\knl.gho:1代表存放在第1硬盘第2分区的knl.gho文件中的第1个分区映像; 驱动器符:src=d:\knl.gho:2代表源数据是D盘上knl.gho文件中的第
14、2个分区映像; 特别提醒:映像文件中只有一个分区映像时也要指明分区号(如knl.gho:1)。 n=xxxxM ┄ 将第n分区(目标分区)调整为xxxxMB(如sze2=800M表示调整第2分区大小=800MB); n=xxP ┄ 将第n分区(目标分区)调整为整个硬盘的xx%大小。 参数文件:GHOST.EXE @(参数文件) //命令行参数可从参数文件(文本格式)读取并执行 除 -AFILE= 和 -DFILE= 参数外 ------------------------------------------用户干预开关 ----------------------------
15、
-FX 本次操作结束后退出Ghost返回到DOS提示符。
-RB 本次操作结束后自动重新启动系统(Reboot)。
-SURE 和-CLONE选项一起使用来避免提问(一律回答yes不再出现最终确认询问)。
-QUIET 安静模式。操作过程中禁止用户干预和状态更新。
-NOFILE 禁止脚本文件应答。
-SCRIPT=
16、
-Zn 备份为镜像时进行压缩(n=1快速压缩,n=2中速压缩,n=3~9更高压缩率)。
-SPLIT=n 创建映象时将映象分成数个文件(每个文件n兆字节)。
-PWD=x 生成映像或还原时Ghost会提示输入密码x,给定了=x后就不再提示输入密码。
-PMBR 当进行任何磁盘复制操作时,保留目标磁盘中的主引导记录MBR。
-SPAN 分卷提示,当空间不足时提示复制到另一个分区的另一个备份包(映像文件)中。
-CHKIMG,
17、的完整性。 ------------------------------------------复制方式开关 --------------------------------------------- -IA 全部镜像。将整个硬盘作成一个映像文件(其中包含所有分区),逐个分区进行备份。 -IAL 全部镜像。类似于-IA,是针对Linux分区的逐个分区备份。 -ID 全部镜像。类似于-IA,但包含分区引导信息(备份整个磁盘,包括未分区的空间)。 -IR 全部镜像。类似于-IA,但不根据扇区边界调整分区大小。 -IB 只备份磁盘的引导扇区。 -SZE
18、 为还原或复制操作设置目标分区大小,支持多分区大小转换。 -BOOTCD 随-SURE使用,直接向刻录机写.gho映象时,需在软驱中放入系统盘(制作启动光盘)。 -GHOSTONCD 将.gho映像刻录到CD时,CD上将包含Ghost.exe文件。 -FDSZ 清除目标盘上的磁盘标志字节。 -FDSU 更新目标盘上的磁盘标志字节。 -FDSP 保留目标盘上的磁盘标志字节。 -FMBR 将目标盘格式化成MBR磁盘。 -FGPT 将目标盘格式化成GPT磁盘。 -FPR 根据分区初始大小比例来调整目标分区大小。 -FEMAX 使用磁盘对磁盘或
19、映像对磁盘操作创建扩展分区时,确保扩展分区占用所有可用空间。 -NOLILO 复制后不要试图去修正LILO启动调入器。 -ALIGN 将目标盘按megabyte boundaries(mb)或cylinder/track(chs)排列。 -------------------------------------------NTFS专用开关 ------------------------------------------- -NTEXACT 精确恢复NTFS源卷的布局。 -NTD 允许NTFS内部诊断检查。 -NTCHKDSK 强制CHKDSK在下一个NTFS
20、卷启动。 -NTIC 忽略NTFS卷上的CHKDSK位。 -NTIL 忽略非空的NTFS日志文件检查位。 -NTIID 忽略分区系统标识符的复制。 -----------------------------------------磁盘访问方式开关 ------------------------------------------ -DL=n 指定存在的硬盘号。 -FIS 使用检测出的硬盘最大值。 -FNX 禁止扩展13号中断支持。 -FFX 使用扩展13号中断。 -FFI 使用直接IDE硬盘存取。此参数对在 Win98下运行的
21、Norton Ghost无效。 -FFS 使用直接ASPI/SCSI硬盘存取。 -FNI 禁止直接IDE硬盘存取支持。此参数与-noide参数具有相同功能。 -FNS 禁止直接ASPI/SCSI硬盘存取支持。此参数与-noscsi参数具有相同功能。 -NOSCSI 禁止使用ASPI存取SCSI设备。 -FORCEUSB 强制启用USB支持。 -NOUSB 禁止USB支持。 -FRO 如果源分区发现坏簇,则略过提示强行复制(用于试着挽救磁盘坏道中的数据)。 =============================================
22、 DOS系统配置(config.sys) 1.Device和DeviceHigh ┄ 将指定的设备驱动程序装入内存。例如,内存管理程序或光驱驱动程序等。 用法:Device或DeviceHigh=完整的路径文件名 [参数] // DeviceHigh将程序加载到高内存区 2.DOS ┄ 分别将DOS的一部分装载到高内存区(未安装Emm386.exe,设置umb无实际意义)。 语法:DOS=[HIGH|LOW][,UMB|,NOUMB][,AUTO|,NOAUTO][,SINGLE] 参数:high表示使用HMA
23、low表示不使用HMA;umb表示使用UMB,noumb表示不使用UMB; auto表示系统自动配置,noauto表示不自动配置,single表示使用单一模式的DOS。 其中,auto/noauto和single仅用于MS-DOS 7.x中。 3.Files和FilesHigh ┄ 可同时访问的文件数,缺省值8,一般选择20~40,设置过大会占用过多的基本内存。 用法:Files或FilesHigh=可同时访问的文件数量。 4.Buffers和BuffersHigh ┄ 设置磁盘缓冲区数目,缺省值15,通常可设置为20~30左右。 语法:Buffers=磁盘缓冲区数量 或 Buf
24、fersHigh=磁盘缓冲区数量 磁盘缓冲区是一块内存区,用于暂存写入磁盘或从磁盘读出的数据。dos在读写一个记录时,首先检查包含那个记录的数据块是否已在磁盘缓冲区中,如果不在,就从磁盘读该数据块到磁盘缓冲区中,然后再将此记录传给应用程序;如果数据已在磁盘缓冲区中,则不必读磁盘,而是直接把数据传给应用程序。由于从磁盘上读取数据是相对耗时较多的操作,所以增大磁盘缓冲区可节省磁盘读写时间。但要注意,增加磁盘缓冲区是要占用内存的,所以,设置磁盘缓冲区数目并不是越大越好。最佳的磁盘缓冲区数目要根据用户机器配置和通常所运行的程序类型来确定。 5.LastDrive和LastDriveHigh ┄ 指
25、定DOS所能识别的最后一个驱动器符(用户可访问的最大驱动器数目)。 语法:LastDrive=驱动器字母 备注:若设定字母<机器上实际安装的驱动器数,LastDrive被忽略;缺省值=机器实际驱动器数+1。 例如:LastDrive=Z //将Z设置成最后一个有效的驱动器字母 6.Stacks和StacksHigh ┄ 设置DOS堆栈个数。 举例:stacks=9,256 //通常设该值均可满足需要 7.Install和InstallHigh ┄ 用于加载TSR(内存驻留程序)。 语法:Install/InstallHigh=文件名 [参数] //如I
26、nstall=C:\DOS\DOSKEY.COM /APPEDIT 8.Shell ┄ 指定DOS命令解释程序的位置路径和名称(通常为COMMAND.COM)。 用法:Shell=路径文件名 [参数] 9.Break ┄ 设置或清除扩展的CTRL+C检查。 用法:BREAK=ON|OFF 10.Rem ┄ 添加注释,与批处理文件中的Rem含义相同。非执行语句,注解中的字符串仅用于增加可读性。 -----------------------------------Himem.sys和Emm386.exe命令介绍-----------------------------------
27、Himem.sys和Emm386.exe ┄ 高内存区管理程序。高端、扩展、扩充内存统称为高内存区(HMA)。 Himem.sys负责管理扩展内存;Emm386.exe负责管理高端内存并在扩展内存中模拟扩充内存供某些软件使用。 在DOS操作系统中存在以下四种内存:常规内存(Conventional Memory);高端内存(Upper Memory); 扩充内存(Expanded Memory);扩展内存(Extended Memory)。 设计DOS时,PC硬件只能寻址1MB空间,所以DOS被设计为只能管理最多1M字节的连续内存空间,0~640KB被留给应用程序使用,称为常规内存或基
28、本内存;位于常规内存之上的384K留给视频显示和BIOS使用,称为高端内存(UMB);1MB以上的内存区称为扩展内存(XMS)。最初DOS只能使用640K范围内的基本内存,随着DOS版本升级,可用Emm386.exe激活一部分高端内存,且允许用户使用LH(loadhigh)或Devicehigh将一些设备驱动程序和用户程序装入高端内存。 早期还有一种内存,是安装在主机内的一块内存板,称为扩充内存(EMS),是一种早期增加内存的标准,最多可扩充32MB,使用扩充内存除安装有专门的扩充内存板外,还要安装管理扩充板的驱动程序。由于扩充内存是在扩展内存之前推出的,当时的大部分程序都被设计成使用扩充内
29、存而不能使用扩展内存。由于其使用麻烦,所以在扩展内存出现后不久就被淘汰了。 扩展内存只能用在80286或更高档次的机器上,它同样不能被DOS直接使用,DOS 5.0以后才提供了Himem.sys(扩展内存管理规范),但Emm386.exe可把扩展内存仿真成扩充内存,以满足那些要求使用扩充内存的应用程序。 注意:Emm386.exe要求先安装Himem.sys,因此必须确保Himem.sys命令在Emm386.exe之前配置。 Config.sys文件中Device和Devicehigh的配置次序很重要,它将影响内存的有效使用和Config.sys启动时的一系列程序的正确运行。最好按以下次
30、序配置设备驱动程序:①Himem.sys;②使用扩展内存的的设备驱动程序;③Emm386.exe,如果使用Emm386提供对高端内存的存取功能,而且要仿真扩充内存,Emm386命令行应包括RAM而不是NOEMS开关(NOEMS禁止Emm386仿真扩充内存);④使用扩充内存的设备驱动程序;⑤使用高端内存的设备驱动程序。 由于不同软件所需的系统配置不相同,可能要经常改变配置,于是dos设计了菜单多重选择配置,比如有些游戏无需扩展内存,有些又必须有扩展内存,有些必须设置虚拟盘等。采用多选择配置将是一劳永逸的事。 ------------------------------------------
31、 Himem.sys常用参数---------------------------------------- 1./hmamin=n 以K为单位指定可进驻高端内存区的最小文件长度,其值介于0~63之间,缺省值为0。由于每次只能有一个程序使用高端内存区。因此,使用该选项会禁止小于nK的文件进入高端内存,而允许较大的程序进驻,从而更充分地利用高端内存。 2./testmem:on|off 指定Himem.sys在每次开机时是否进行内存测试。扩展内存测试会使启动时间变长,所以在调试配置时应禁止内存测试,这样可使启动更快,然后在已确定最佳系统配置的情况下,进行内存测试是可取的。 3./sha
32、dowram:on/off 设定Himem.sys是否使用映象RAM(将系统ROM BIOS拷贝到RAM以加快运行速度)。由于Himem.sys不总是控制是否启用映象RAM,因此在某些系统上此选项不起作用。 4./verbose 可缩写为/V,加载Himem.sys时可显示状态和错误信息。缺省情况下,Himem.sys只在发生错误时才显示信息。Himem.sys加载过程中按住ALT键也可显示Himem.sys状态。使用该选项对调试配置有帮助,附加此选项后可显示大量Himem.sys状态信息。用户可用F8键使Config.sys每次只执行一行,以便在Himem.sys信息滚出屏幕之前仔细查
33、看。 ---------------------------------------- Emm386.exe常用参数 ---------------------------------------- 语法:Device=Emm386.exe [ON|OFF|AUTO][RAM=nnnn][NOEMS][VERBOSE][NOMOVEXBDA]… 选项:ON|OFF|AUTO ┄ 激活|挂起|将Emm386设备驱动程序设置为自动模式,默认值ON。 NOEMS ┄ 提供对高端内存区的访问,但阻止对扩展内存的访问(禁止仿真扩充内存)。 RAM=nnnn ┄ 启用EMS支持,nnnn指定用于
34、UMB的段地址范围,不指定表示使用默认值。 VERBOSE ┄ 在加载EMM386过程中指示EMM386显示状态和错误信息。 NOMOVEXBDA ┄ 阻止Emm386将扩展BIOS数据从常规内存移至高端内存。 -----------------------------------------配置实例(两个选项)----------------------------------------- [menu] menuitem=nomal,nomal configuration 设定第一个配置 menuitem=myself,configuration for myself 设定第二
35、个配置 菜单设计区 menudefault=nomal,5 设定默认配置和等待时间(时间一到自动执行默认配置) menucolor=15,1 设定菜单颜色(逗号前为文字颜色,后为背景色) [nomal] []中的内容需与menuitem后的字符相同 Files=30 同时打开的文件数 Buffers=30 设置磁盘缓冲区个数 Device=c:\dos\himem.sys 加载himem.sys 第1个配置 Device=c:\dos\emm386.exe RAM 加载emm386.exe Last
36、drive=z 指定最大驱动器符 [myself] Files=35 两个配置中打开的文件数不同 Buffers=20 磁盘缓冲区个数不同,因此分开设置 第2个配置 Device=c:\dos\himem.sys 加载himem.sys Device=c:\dos\emm386.exe NOEMS 加载emm386.exe [common] dos=high,umb 将部分DOS加载到高内存区 公共配置项 devicehigh=c:\vide-cdd.sys /D:mscd01 光驱驱动程序加载到高内存区 -----
37、 其中[menu]为菜单设计区:menuitem指向对应配置区,可有多个配置区,逗号后是菜单上显示的内容; menudefault设置默认菜单选项,逗号后是自动选择的时间;menucolor设置菜单颜色。 屏幕颜色设置:0=黑色,1=蓝色,2=绿色,3=青色,4=红色,5=红紫色,6=棕色,7=白色,8=灰色 9=淡蓝色,10=淡绿色,11=淡青色,12=淡红色,13=淡红紫色,14=黄色,15=淡
38、白色 对应地,在Autoexec.bat中也可进行多任务选择。接上面配置,其Autoexec.bat内容如下: ---------------------------------------------------------------------------------------------------- @echo off 关闭回显 Prompt $p$g 设置DOS提示符为当前路径+>号 Set temp=c:\dos\temp 设置环境变量并为其赋值 公用配置项 LH Mscdex.exe /D:mscd001 /L:z >nul 配置
39、CD-ROM光驱 LH c:\mouse\Mouse.sys 加载鼠标驱动到高内存区 Goto %config% 转至%config%(用%config%捕捉用户对config.sys的选择) :nomal 冒号后的字符需与config.sys中的配置区名相同 对应第1个配置 LH c:\dos\smartdrv.exe 为硬盘光驱读写设置缓冲区 Goto end 跳转到end :myself 用户选择了第二项 对应第2个配置 Path c:\dos;c:\tools 设置系统变量PATH值 :end ==
40、 常用DOS批处理命令 MS-DOS 7.10新功能:全面支持FAT32分区(大硬盘LBA分区等);config.sys中的命令(如Files、Buffers等)自动调入UMB内存;环境变量可用于命令行,如直接执行PATH=%PATH%;C:\TEST等;可用AccDate(一个config.sys命令)决定是否记录文件存取时间;可设定在FOR命令中是否使用长文件名(LFNFOR on|off);输入文件名时可使用引号(如:MD "My
41、File",对带空格的长文件名来说很重要);可用COMMAND /Z命令显示ERRORLEVEL代码;可用DIR /V显示文件存取时间,用DIR /4显示四位年份(如1999),用DIR在即使没有文件存在的情况下显示磁盘剩余空间;用LOCK和UNLOCK锁定/解锁直接磁盘存取;支持长文件名(长文件名驱动程序DOSLFN.COM);用EXTRACT从CAB文件中提取压缩文件。常用批命令(用在.bat中)如下: 1.@ ┄ 一个特殊标记符,加在一个命令行的最前面,表示运行时不显示本命令行(只影响当前行)。 2.ECHO ┄ 打开或关闭回显,或显示消息,无参数的echo 则显示当前回显设置。
42、语法:echo [{ on|off }][message] //打开|关闭回显,或显示一条消息 举例:echo off 表示在此语句后所有运行的命令都不显示命令行本身 3.>和>> ┄ 输出重定向命令。将一条命令的输出结果重定向(写入)到特定文件中。 区别:>先清除原文件内容再写入,>>追加内容到指定文件中,不改动原文件内容。 举例:dir c:\*.exe > exeback.txt //将c盘所有exe文件的列表写入exeback.txt中 dir d:\*.exe >> exeback.txt //再将d盘所有exe文件的列表追加到exeback.txt中 mscdex
43、exe /d:mscd001 >nul //使mscdex运行时不在屏幕上出现提示信息 备注:mscdex运行时会在屏幕上给出一些提示信息,>nul可将提示信息重定向输出到空文件中。 | ┄ 管道符。将第一条命令的输出结果作为第二条命令的参数来使用。 4.LH ┄ 将程序装入高端内存。语法:LH 程序 举例:LH //将鼠标驱动程序装入高端内存 5.SET ┄ 设置环境变量,并为变量赋值。 环境是指由DOS管理的一个系统变量存贮区(位于RAM中),可通过预先定义这些变量值来控制系统按用户意愿运行某些程序,通常在CONFIG.SYS或AUTOEXEC.BAT批处理文件中用SET命
44、令来设定,以便计算机重启后能根据用户需要使系统自动进入到用户设定的运行环境中。用SET命令可为系统环境变量赋值,或清除变量值,或显示环境信息。 语法:①为变量赋值:SET 变量=字符串;②清除变量值:SET=;③显示环境信息:SET; 备注:①用SET设置的变量及值将被保存在系统环境中,尔后其它命令就可使用该变量。 ②在批处理文件中,使用变量时必须用两个百分符(%)将变量名括起来。 6.% ┄ 命令行参数。在批处理文件中,命令行参数用%0~%9表示,%0表示批命令本身,参数用%1~%9表示。 例如:autoexec.bat中有一行:call findcdr "ghost.exe" C
45、 D E F G H findcdr.bat中有如下命令行:set Flie=%1 //%0值=findcdr,%1值="ghost.exe" if "%CDROM1%"=="%2:" goto scdr //%2值=C,%3值=D,%4值=E 7.SHIFT ┄ 更改批处理文件中可替换参数的位置。 该命令将%1的值传送给%0,将%2的值传送给%1,以此类推。该命令无参数。 8.IF ┄ 条件命令。有三种语法: ① IF 或 IF not "参数"=="字符串" 待执行的命令 //若参数=(或≠)字符串,执行命令,否则执行下一句 例如:if "%1"=="a" form
46、at a: //若给定命令行的第1个参数是a,则执行a盘格式化 if {%2}=={} goto noparms ② IF exist 或 IF not exist 文件名 待执行的命令 //若存在(或不存在)指定文件,执行命令,否则运行下一句 例如:IF exist c:\config.sys type c:\config.sys //如果存在c:\config.sys文件,则显示该文件的内容 ③ IF errorlevel 或 IF not errorlevel 数字 待执行的命令 //若返回码=(或≠)数字,执行命令,否则运行下一句 IF语句行必须按从大到小的顺序来
47、判断返回值。 例如:IF errorlevel 2 goto X2 //很多dos程序运行结束会返回一数字值,称为返回码 IF errorlevel 1 goto X1 //先判断2再判断1(从大到小) 9.FOR ┄ 对一组文件中的每个文件运行指定的命令(for、in、do为命令关键字)。 语法:For %%var in (set) do cmd[命令行参数] //用于批文件 For %var in (set) do cmd[命令行参数] //用于命令行(变量名前只有一个%) 参数:var ┄ 变量名(英文字母,区分大小写,如%A,%B,%C),是一个可替换的
48、参数。 set ┄ 指定要用cmd命令处理的一个或多个文件、目录、数值范围、文本字符串,需要括号。 cmd ┄ 指定要对包括在(set)中的每个文件、目录、数值范围、文本字符串所执行的命令。 注释:每次取set中的一个值代替%%var,再以%%var作参数执行cmd,如此重复,直到处理完set中的所有值为止。 扩展:①仅为目录。如果set包含通配符,则以匹配set的每个目录去执行指定命令。 语法:For /D %%var in (set) do cmd[命令行参数] 在这种语法中,通配符仅匹配目录名,而不匹配文件名。 ②递归变量。进入根目录树[Drive:]Path,在树的每个目
49、录中执行For语句。 语法:For /R[[Drive:]Path] %%var in (set) do cmd[命令行参数] 如果在/R后未指定目录,则假定为当前目录;如果set只是一个句号(.),则只列举目录树。 ③迭代变量。可设置(set)为一个数字序列,如(1,1,5)表示(1 2 3 4 5),(5,-1,1)表示(5 4 3 2 1)。 语法:For /L %%var in (start,step,end) do cmd [命令行参数] start为数字序列的起点,start为终点,step为步长。 举例:处理一组文件。set参数可代表单个或多个文件组,可使用通配符(* 和?)指定文件组。 以下为有效文件组:(*.doc) //文件名包含空格时可用引号("File Name") (*.doc *.txt *.me) //之间以空格分隔 (jan*.doc jan?.rpt feb*.rpt) 例1:查找所有磁盘,若存在knl.gho文件,就将最后面存有该文件的磁盘的盘符送环境变量S中。 For %%b in (c d e f g h i j k l m n o p q r s t u v w) do if exist %%b:\knl.gho set S=%%b 例2:用type命令显示当前目录中所有扩展名为doc、
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818