
在这篇里解说的是批处理中所常要用到的一些命令和作用,
请仔细阅读, 配合上一篇的解说, 记住这些命令和作用, 你就能够明白
DOS 的工作原理了, 也就能修改自己所需要用的功能了
====================第二课 基本 DOS 批处理详细解说================================
一、echo、@、call、pause、rem 是批处理文件最常用的几个命令,我们就从他们
开始学起
echo 表示显示此命令后的字符
echo off 表示在此语句后所有运行的命令都不显示命令行本身
@ 与echo off相象,但它是加在其它命令行的最前面,表示运行时
不显示命令行本身。
call 调用另一条批处理文件(如果直接调用别的批处理文件 ,执行完
那条文件后将无法执行当前文件后续命令)
pause 运行此句会暂停,显示 Press any key to continue... 等待用户
按任意键后继续
rem 表示此命令后的字符为解释行,不执行,只是给自己今后查找用的
二、if 、goto 、choice 、for 是批处理文件中比较高级的命令,如果这几个你用
得很熟练,你就是批处理文件的专家啦。
if 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式:
1、if "参数" == "字符串" 待执行的命令
参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。
(注意是两个等号)
如:if "%1"=="a" format a:
2、if exist 文件名 待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如:if exist config.sys edit config.sys
3、if errorlevel 数字 待执行的命令
如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。
如if errorlevel 2 goto x2 DOS程序运行时都会返回一个数字给DOS,
称为错误码errorlevel或称返回码
goto 批处理文件运行到这里将跳到goto 所指定的标号处,一般与 if 配合使用。
如:
goto end
:end
echo this is the end
: 这是标号字符(所在位是冒号),是用来执行被 goto 跳转所用的标号字符,
标号所在行是不会被执行,如:
:end 等等...
choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该
加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……
如: choice /c:dme defrag,mem,end
将显示
defrag,mem,end[D,M,E]?
例如,test.bat的内容如下:
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag 应先判断数值最高的错误码
if errorlevel 2 goto mem
if errotlevel 1 goto end
:defrag
c:\dos\defrag
goto end
:mem
mem
goto end
:end
echo good bye
此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ,
然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行
标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都
以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。
for 循环命令,只要条件符合,它将多次执行同一命令。
格式FOR [%%f] in (集合) DO [命令]
只要参数f在指定的集合内,则条件成立,执行命令
如果一条批处理文件中有一行:
for %%c in (*.bat *.txt) do type %%c
含义是如果是以bat或txt结尾的文件,则显示文件的内容。
device和devicehigh
加载一些内存驻留程序,用于管理设备。比如内存管理程序和
光驱驱动程序等。
如: device=c:\dos\himem.sys
device=c:\dos\emm386.exe ram
devicehigh=c:\cdrom\cdrom.sys
himem.sys和emm386.exe
DOS只能直接使用640K的内存,即基本内存,必须依靠其它内存管理程序来
使用更多的内存,这两条命令就是最常用的内存管理程序。
himem.sys 负责管理扩展内存。
emm386.exe 负责管理高端内存并在扩展内存中模拟扩充内存供某些软件使用。
为了使用更多的内存,配置文件中应有:
device=c:\dos\himem.sys
device=c:\dos\emm386.exe ram
注意:EMM386.exe 要求先安装 himem.sys,因而必须确保
安装 himem.sys 的配置命令在 emm386.exe 之前。
dos=high,umb 这两个参数也可以分开写成两条语句,即:
dos=high
dos=umb
应在config.sys中加入这条命令,这样会将DOS的系统文件移入高端
内存,空出更多的基本内存给其它软件使用。 注意,如果用户没有
安装emm386.exe,umb这个参数是没有实际意义的
lastdriver lastdriver 规定用户可以访问的最大驱动器符数目,也就是DOS所能
识别的最后的驱动器符(字母)。如果设定的驱动器符数目小于本机上
的实际驱动器数,则此lastdriver命令会被忽略掉。缺省的最大驱动
器符数目为本机的实际驱动器数目加一。
:: 二个冒号,它和批处理文件中的 rem 含义相同,即注释
ramdrive.sys 虚拟磁盘文件。
只要在 config.sys 中加入 device=ramdrive.sys 就可使用虚拟磁盘了
比如:
device=c:\dos\ramdrive.sys 1024 /e
表示在扩展内存中建立 1M 的虚拟磁盘。如果加/a参数,则表示在扩充
内存中建立虚拟磁盘。
%CDROM% %CDROM%是光驱盘符的变量字符串,用它可以把所在的任意光驱盘符替为
真实盘符, 需要与光驱驱动模块一同执行,如:
LH \MSCDEX.EXE /D:mscd001 /L:%CDROM%
%RAMD% %RAMD%是随机虚拟磁盘, 此盘创建在扩展内存中, 建立此盘的模块就是
ramdrive.sys ,见上面的“虚拟磁盘文件”说明。
另外这个虚拟内在还有更强大的虚拟内存管理器,可以超过64MB的内存
管理,就是 XMSDSK.EXE 与 EMSDSK.EXE,