文档库 最新最全的文档下载
当前位置:文档库 › CONFIG文件的命令与配置讲解

CONFIG文件的命令与配置讲解

CONFIG.SYS是DOS系统中的一个重要文件,它的配置直接影响到系统的使用及其效率。如果配置不当的话,可能很多程序都无法正常运行。因此,正确合理地配置CONFIG.SYS文件是十分必要和重要的。下面我向大家介绍一下CONFIG.SYS中的命令及其配置方法。

CONFIG.SYS中的命令:
注意:所有以HIGH结尾的命令(如DEVICEHIGH)表示将其调入UMB(上位内存),但有些这样的命令(如FILESHIGH)必须在MS-DOS 7.x版本中使用。

ACCDATE:指定对每一个驱动器是否记录文件最后被访问的日期。
用法:ACCDATE= 驱动器 1+|- [ 驱动器 2+|-]...
如:ACCDATE=C+ D+ E+将在C,D,E盘中记录文件最后被访问的日期。
此命令仅用于MS-DOS 7.x中。

BREAK:设置或清除扩展的CTRL+C检查。
用法:BREAK=ON|OFF

BUFFERS/BUFFERSHIGH:为指定数量的磁盘缓冲区分配内存。
用法:BUFFERS=磁盘缓冲区数量,[从属高速缓存中的缓冲区数量]

DEVICE/DEVICEHIGH:将指定的设备驱动程序装入内存。
用法:DEVICE/DEVICEHIGH 文件名 [参数]
其中,文件名是文件的完整路径,如C:\DOS\HIMEM.SYS。

DOS:用于DOS系统的配置,如是否使用HMA(高端内存区)等。
用法:DOS=[HIGH|LOW][,UMB|,NOUMB][,AUTO|,NOAUTO][,SINGLE]
其中,HIGH和LOW表示使用HMA或不使用HMA,UMB和NOUMB表示使用UMB或不使用UMB,AUTO或NOAUTO表示系统自动配置或不自动配置,SINGLE表示使用单一模式的DOS。其中,AUTO/NOAUTO和SINGLE仅用于MS-DOS 7.x中。

DRIVPARM:设置现有物理设备的参数。
注:此命令用得很少,我也没用过,所以暂时跳过。

FCBS/FCBSHIGH:指定可以同时打开的文件控制块 (FCB) 的数量。
用法:FCBS/FCBSHIGH=可以同时打开的FCB的数量。
注:由于FCB主要是在DOS 1.x中使用,对于高版本,所以可以让系统自动配置。

FILES/FILESHIGH:指定 可以同时访问的文件数量。
用法:FILES/FILESHIGH=可以同时访问的文件数量。
注:一般FILES/FILESHIGH的设置值在30左右比较合适。

INSTALL/INSTALLHIGH:用于加载TSR(内存驻留程序)。
用法:INSTALL/INSTALLHIGH=文件名 [参数]
如:INSTALLHIGH=C:\DOS\https://www.wendangku.net/doc/ca18536682.html, /APPEDIT

LASTDRIVE/LASTDRIVEHIGH:指定可以访问的驱动器的最后有效的驱动器字母。
用法:LASTDRIVE=驱动器字母
如LASTDRIVE=F会将F设置成最后有效的驱动器字母。

NUMLOCK:指定启动时NUMLOCK指定灯是否打开。
用法:NUMLOCK=ON|OFF

REM:添加注解。
用法:REM [注解字符串]
注:注解中的字符串只是用来增加可读性,将不被执行。

SET:设计DOS环境变量。
用法:SET 变量=[变量值]

SHELL:指定DOS 使用的命令解释程序的名称和位置。
用法:SHELL=文件名 [参数]
注:文件名默认是https://www.wendangku.net/doc/ca18536682.html,,您也可以指定其它的文件,如4DOS

.EXE等。

STACK/STACKHIGH:指定使用的堆栈数量。
用法:STACK/STACKHIGH=堆栈数量,每个堆栈的大小
注:通常指定的值是9,256,这个值可以满足大多数的需求。

SWITCHES:指定一些特殊选项。
用法:SWITCHES=[/W] [/F] [/K] [/N] [/E[:n]]

其它的是一些菜单配置命令,如MENUITEM,MENUCOLOR等。

在MS-DOS 7.x中还有一些未公开命令,如LOGO,COMMENT等。

DOS批处理文件

DOS下的可执行文件有三种,分别是EXE,COM和BAT。其中,EXE和COM文件都是二进制形式的,只有BAT文件是文本形式的,可以直接阅读。因此,BAT文件和以上二进制可执行文件相比,内容要简单的多。这些文件内包含着DOS命令的集合,通常叫作批处理文件。批处理文件的组成虽然比较简单,但其用处非常大,使用也比较广泛。比如每次都执行一些相同的命令,您一定会觉得非常麻烦,而放在批处理文件中执行的话则轻松得多。AUTOEXEC.BAT就是一个特殊的批处理文件,它在DOS的启动时自动运行,在系统的配置中发挥着非常大的作用。因此,要学好DOS,就要学好批处理文件。下面介绍批处理文件的命令及其使用。

DOS自带的批处理命令:

@:将这个符号放在批文件中其它命令的前面,运行时将不显示命令本身。
如@ECHO OFF命令就在批文件首经常用到。

CALL:从一个批文件中调用另一个批文件,调用完后继续执行原来的批文件。
用法:CALL [批文件名]
注:也可以使用COMMAND /C命令完成同样的操作。

CHOICE:选择命令。这是一个DOS外部命令,但它主要用在批文件中。
CHOICE命令执行后将提示可选择的项目,这时通过一个按键来选则。
用法:CHOICE:[/C[:]按键表] [/N] [/S] [/T[:]选择值,秒数] [显示文本]
其中,/C表示可选则的按键,/N表示不要显示提示信息,/S表示大小写字符敏感方式,/T表示若在批定的时间内没有选则的话,自动执行/C中定义的某个选择值。显示文本是CHOICE命令执行时的提示信息。选择结果将用ERRORLEVEL值来表示。

ECHO:显示指定的信息。通常显示在屏幕上。
如ECHO Hello将在屏幕上显示Hello的字样。
另外,ECHO ON|OFF用来设置在批文件执行时是否显示命令本身。而ECHO OFF与@的意思一样,但它是一个单独的命令,而不能像@那样放在其它命令之前。

FOR:对于指定的文件运行相应的命令。
大家知道,DOS下许多命令支持通配符,如?和*,可以一次指定一批文件,非常方便。然而,并非所有的DOS命令都支持通配符,如TYPE(文件内容显示命令)就不支持。有了FOR命令就没有关系了,利于它可以使TYPE命令可以一次显示多个文件。
用法:FOR %变量名 IN (文件集) DO 命令 [命令参数]
注:以上是FOR命

令的固定形式,IN和DO的位置必须正确,否则将提示语法错误。
如FOR %F IN (*.*) DO TYPE %F命令就可以实现TYPE命令一次显示多个文件。
注:%F是变量名,也可用%G等代替,但前后必须一致。在批文件中用%%F代替。

GOTO:转到批文件内部的某个标号下执行。
大家知道,在编程中往往需要重复或跳转到某个地方继续执行,如BASIC语言中的GOTO命令。批文件中的GOTO命令也可以完成类似的功能。
用法:GOTO [标号名]
其中,标号名是可以随意设置的,如Hello等。设置标号用“:”符号,如“:Hello”,这时用GOTO Hello命令将转到“:Hello”所在的位置继续执行批文件。

IF:条件判断命令。这是一项很有用的批处理命令。
用法1:IF [NOT] EXIST 文件名 命令 [命令参数]
意义:如果[不]存在某个文件将执行某个命令。
用法2:IF [NOT] ERRORLEVEL 错误返回代号 命令 [命令参数]
意义:如果错误返回代号[不]大于或等于指定的代号将执行某个命令。
其中,ERRORLEVEL表示错误返回代号,很有用。对于很多DOS命令,由于执行的结果不同(如执行成功,执行失败,或被用户中断等),这些命令会返回不同的代号,以表示不同的结果。IF ERRORLEVEL命令就根据这个不同结果而产生的不同代号来执行不同的命令,通常用在某条命令之后。如IF ERRORLEVEL 1 ECHO OK!表示如果当前的错误返回代号大于或等于1时将在屏幕上显示“OK!”的字样。
用法3:IF [NOT] 字符串1==字符串2 命令 [命令参数]
意义:当字符串1和字符串2[不]相等的时候执行某个命令。

PAUSE:暂停批文件的执行,并显示“按任意键继续”的字样。

REM:添加注解。用于增加文件可读性,将不被执行。也可以用::来代替。

SHIFT:在批文件中改变可替换参数的位置。
可替换参数是一种特殊的参数,只能用在批文件中。这些参数是由使用者在执行批处理命令时输入的。比如,我们执行DIR /S /W命令,其中DIR是命令名,/S和/W是它的执行参数。在批文件中,这些命令参数将被分别赋予到可替换参数中,如/S就成的%1,/W就可了%2,以至类推,而命令本身则被赋予%0中。批文件就是利用可替换参数对执行时输入的参数来进行操作的。比如现在有个批处理文件叫MYFILE.BAT,在命令行下执行MYFILE.BAT YES,于是%0的值就是MYFILE.BAT,%1的值就是“YES”,可以在此批文件中用IF等命令判断出%1等参数的值,然后根据这些值的不同执行不同的操作,如IF "%1"=="YES" GOTO YES。
SHIFT命令不带任何参数,执行结果是将%0的值换成原%1的值,而原%1的值变成的原%2的值,以此类推。注意它的不可逆转性。因为批处理文件执行时的运行参数可能很多,可能会超过10个,而

可替换参数只能从%0到%9,若想取得%9以后的参数值,只能使用SHIFT命令。这时,整个参数列将向前推。

以上是DOS的自带批处理命令,可以看出,这些命令是非常少的,若要编写较复杂的程序,用以上的命令显然不可能实现。这时就需要其它实用的批处理工具了,著名且实用的有TESTIF,STRING,ASET,BATCHMAN,WBAT等,均可在“DOS软件分类下载”中的“脚本工具”中下载。在批处理文件中使用以上的工具可以实现非常强大的功能,甚至可以完成许多高级语言程序的功能。所以,如果您想编者按写批处理文件的话,它们是您不错的选择,不仅有详细的文档,而且还在不断发展中。

下面就要谈批处理文件的制作了。其实制作批处理文件并不难,只要掌握了方法就行了。随着您操作次数的增多,您会觉得越来越容易的。

首先使用一个文本编辑器,如DOS自带的EDIT命令或其它的编辑工具,如PEDIT等新建一个空白文件(当然,用COPY CON命令直接创建也行),然后在其中根据您想完成的功能输入批处理命令。如果您只是想执行一些的DOS命令的集合,则按顺序在每行输入一个DOS命令就行了。但如果您是想完成一些更复杂的操作,就需要以上的批处理命令或上述的批处理工具了。


=======================================================
MSdos系统在启动时首先读入IO、sys--然后,依次是msdos、sys----config。sys--command、com--autoexec、bat。。。。。
当然,目前本版块大多数同仁对IO、sys这样的启动核心文件还不能像站长wengier那样大刀阔斧地动手动脚。。。。那我们就在config文件里纵横驰骋地DIY吧。。
pc机的系统启动时会自动寻找config.sys这个文件,如果没有它,系统就按默认的方式运行,但这种默认的方式在大部分情况下都不是最适合系统使用的,所以我们应对系统启动环境进行设置,比如设置对扩展内存的使用,加载光驱,usb驱动程序等。

当您的系统出现系统使用不了、程序内存不够、设备找不到、声卡不能驱动,无法连接网络等等错误,合理修改config.sys也许能解决一半以上的问题。

config.sys是文本文件,可以用任何文本编辑器编辑创建和修改。(建一个文本文件,写入内容后重命名为config、sys就行了)当然,同样的内容如果你把它叫了别的名字,像什么autoexec、sys之类。。。系统是肯定不会承认的啦。。呵呵。。。。如果你增添、更改或删除config.sys文件中的任一配置命令,则这种改变只在下一次启动DOS时才有效。这点大家可要记住哟。config文件只在系统初始化时载入执行。。。。
上面讲到了dos启动时在执行自动批处理

命令前,在启动文件所在的根目录中自动检索config、sys文件。。。如果存在此文件系统就将此文件读入内存。。并逐行解释该文件中的每条命令。
(大家一定要记住“逐行解释”解释这四个字)设置当前的dos系统配置。。。
一般来说,config、sys文件是ASCLL码文本文件。。。下面我们就讲讲config文件里的一些常规命令及其功能。
1,检查命令
BREAK命令用于指令dos经常不断地检查用户是否按下Ctrl_Break键。。
其一般格式为:BREAK=ON/OFF
break=on时,dos系统在任何时候都检查Ctrl_Break...这种状态下,用户可以通过按
Ctrl+Break组合键(即著名的CTRL+C)退出正谠诵械某绦蚪獭?br> break=off时,dos系统只在满足下叙几个条件时才会检查用户是否按下Ctrl+Break组合键。
(1)标准输出操作;
(2)标准输入操作;
(3)标准打印操作;
(4)标准辅助操作;
2,缓冲命令
BUFFERS执行dos启动后,在系统内存中建立磁盘缓冲区。磁盘缓冲区使用内存中某一区域,dos利用其进行数据操作。磁盘缓冲区是一块内存区,它用于存储从磁盘读入的数据或存储写到磁盘的数据。DOS在读或写一个记录时,先检查包含那个记录的数据块是否已在磁盘缓冲区中,如果不在,就从磁盘上将该数据块读入到磁盘缓冲区中,再将此记录传送给应用程序;如果数据已在磁盘缓冲区中,则不必从磁盘上读入,而是直接把数据传送给应用程序。由于从磁盘上读取数据是相对耗时较多的操作,所以增加磁盘缓冲区可以节省很多读盘的时间。但是要注意,增加磁盘缓冲区是要占用内存的,因之减少了应用程序所能够使用的内存,必然增加读写磁盘的次数,造成软件执行速度变慢甚或不能执行。所以,磁盘缓冲区的数值并不是设得越大越好,最佳的磁盘缓冲区数目要根据用户的机器配置和通常运行的程序类型来确定。buffers命令的一般格式为:
BUFFERS=1-99之间的整数
其缺省值为2,ibmdos为3。
3,设置打开文件数
FILES命令和FCBS命令一般来说都是设置dos系统同时可处理文件的数目。当我们想装一些游戏(像DD的仙剑)的时候,要拷贝或解压缩大批的小文件文件数可能有几千,这时就可以增加FILES的上限。就会dos提高拷贝或解压缩的速度。不过要记住一点,这可是要占用很多内存的哟。
FILES命令只能控制文件管理器(字)能够同时打开的文件数目,不会影响文件控制块(FCB)所控制的同时打开文件数。
其命令的一般格式为:
FILES=(8-

255之间的整数)其缺省值为8
FCBS=(1-255之间的整数),(0-255之间的整数)缺省值为40,0
(FCBS=)前面的数必须大于后面的数。其中前面的数指定文件控制块(FCB)同时打开的最多文件数,后面的数指定文件控制块(FCB)同时打开相当文件时,dos系统不可自动关闭的文件数。如果由于dos关闭某个FCBS文件引起错误,可以加大前面的数值。config文件里使用FCBS命令语句,dos的常驻空间会增大。
在这里再告诉大家一点,多数应用软件是使用 FILES来管理打开文件的。
4,驱动装载
我们知道pc机的各种外部设备都有相应的设备驱动程序,系统在使用这些设备时需要装入其驱动程序。DEVICE命令就是做这份工作的。它载入一切我们运行dos系统时需要的
标准设备驱动(软盘,硬盘及键盘等输入输出设备)支持的设备之外的一切设备驱动。而且可以装载我们自己编写的驱动文件哟。
其一般命令格式为:DEVICE=盘符/所在路径(文件夹)/设备驱动文件
这条命令在config文件中是一个很独特的命令,因为它可以多次使用,以指定多个不同功能的设备的驱动程序。有的情况我们可以在DEVICE命令后加上HIGH,以将设备驱动调入高端内存区,节省dos的常规内存。
5,设置命令处理器
SHELL命令用于设置dos系统所使用的命令解释器。一般dos默认command、com为最外层的命令处理程序。如果我们使用了其他兼容的dos系统的command(如我就曾在msdos中使用romdos的command、com)就应该使用SHELL命令在config文件中进行设置。我们也可以用该命令调用其他功能更强大的命令解释器,如4dos、exe等。。当然,有谁自己开发了更好用的命令解释器(如aommand、com或7dos、exe之类),同样可以用SHELL命令装载。。
该命令一般格式为SHELL=盘符/所在路径(文件夹)/命令管理器程序
如果命令管理器和此config文件同在当前盘可以省略前面的路径指向。
6,设置变量
SET命令用于改变dos系统环境内的字符串的限定。建立新的dos环境。这个命令所体现的就是真正意义上的人机交互。。。。操作者和系统间可以使用此命令所规定的内存区域来改变特定的限制和缺省设置。可以使用该命令建立从%0到%9的变量。
此时格式为:SET 变量名(字符串)=%0至%9的任何设定值
我们如果要使用这个变量,可以在批命令文件中在这个字符串(变量)前后加上%符使用它。例如:我们set tmp=c:\dos 之后就可以在批命令中用DIR %tmp%语句打开查看 c:\dos文件夹里面的内容。。。
这条命令在模式dos6 以

前,是用在autoexec文件里呢。当然,现在在批命令里一样用。。。

在dos中有些命令是特定的。如command所包含的copy,del,type等被称为内部命令的y一些指令。。。autoexec文件里特定的。。for,call,lh,if······等等。。。。
同样,有哪些命令是在config文件支持的呢?我在下面把名称一一列举出来,解说的工作就放在后面慢慢讲吧。。。。
config配置文件命令列表:
ACCDATE BREAK BUFFERS
COMMENT COUNTRY DEVICE
DOS DRIVPARM FCBS
FILS INCLUDE INSTALL
LASTDRIVE LOGO MENUCOLOR
MENUDEFAULT MENUITEM NUMLOCK
REM SHELL STACKS
SUBMENU TCHES SET
其中 BUFFERS,DEVICE, FCBS ,FILES,INSTALL, LASTDRIVE , STACKS 等命令可以添加“HIGH”语句以使用dos的扩展内存。如:DEVICEHIGH=。当然一定是在存在dos的扩展内存的时候。。。。

7,设置时间和日期格式
这里讲一个我们中国人不常用的命令COUNTRY.这是一个设置时间和日期格式的命令。我们大家都知道因为地球物理的原因,各个国家的人种,风俗,时间都不尽相同,所以各国的币制也各各有差。dos缺省的是使用usa的。。COUNTRY可以改变缺省的时间,日期和币制。。所使用格式为:
COUNTRY=(001-972等规定的国家代码)没有中国的。所以具体代码我记不很清楚了。这条命令我基本上不用,只记得E国好像是044。可能wengier会很清楚吧。
8,低部内存管理
这是一个很有趣的命令。dos中的dos命令。前面的dos是指dos系统。后面的dos管理释放低部内存给应用程序。这个dos建立,维护低部内存,并建立低部内存和上部内存间的联系。可以把dos系统自己的一部分装入umb(高内存区)。
其一般格式为:
DOS=HIGH\LOW\AUTO[,UMB,NOUMB,]
HIGH 把部分dos装入高内存区(HMB)
LOW 限制dos在低内存区
AUTO 自动选择将dos放在哪里。
UMB 维护低端内存和保留内存之间的连接关系。。让dos能够使用 LOADHIGH 和DEVICEHIGH等命令将设备或程序装入高内存区。
NOUMB 禁止dos使用高内存区。限制低端内存和高部内存的连接。
此命令中一般不互相矛盾的参数可以连用,连用时请用“,”将它们隔开。使用HIGH和UMB参数时注意应该最少已加载HIMEM.SYS。这条命令可以存在于CONF

IG文件中的任何位置。。

9,安装TSR
一般我们把内存驻留程序称为tsr。我们知道多数程序调用是通过批处理命令来完成的。install就是在dos系统启动执行config文件时就安装一些tsr(内存驻留)程序在内存中。此时,install命令的执行不通过command(命令管理器)也不需要使用环境变量。
其一般格式为:
INSTALL=路径/TSR程序 [参数]
10,包含命令
config有一个选单功能,其目的是为了配置在不同环境下使用机器的相应配置文件。这样难免就会,有一些相互重复的命令语句。而config文件是认死理依次执行语句的。但,如果我们把这些相同的语句重复N次后。相信脾气再好的朋友也会骂一句“bill——该死”可是聪明的bill给我们提供了这样的一个命令INCLUDE。它指明config文件里选项方式存在时,在设定的一个配置块中包含另一个配置块的所有内容。此命令允许我们将几个配置块共同使用的配置语句组,设置成一个单块。在适当的时候用INCLUDE命令包含该块。这样大大减少了我们的重复劳动和config文件的长度。
其命令一般格式为:
INCLUDE=设定的所需包含的块名。

11,注释命令
config文件在dos系统中可谓千差万别。为了让用户了解config文件中设置的意义和原理甚或目的。我们可以在config文件里使用REM命令添加注释语句。这类语句不参与执行。只是让用户更快的了解config文件配置的内容和将要进行的操作等等。。
其命令一般格式为:
REM 注释语句。。
rem命令允许重复使用。每一个命令语句后的字符最大可以达到123个字符。对dos有特殊意义的字符应该用双引号引起来。
此命令在.bat文件和config文件里通用。在批文件里(。bat文件)可以配合ECHO命令显示rem所注释的内容。此时ECHO在ON状态。我们可以通过EDIT等文本编辑器浏览rem命令所注释的内容。而且可以使用不带注释的REM命令在.bat文件和config文件中添加空行。但dos启动时会忽略空行。所以这点一般没有多大意义。

接着讲讲内存吧。我们在dos下如何获得更多的常规内存呢?前文我们提到DOS环境下的大部分程序都是在常规内存中运行,如果某个程序由于内存不够而运行失败,最常见的问题就是常规内存不够。所以我们今天介绍几种尽量释放常规内存的方法:
一、当系统配置有扩展内存时,可以将DOS的大部分代码和https://www.wendangku.net/doc/ca18536682.html,的暂驻内存部分安装在高内存区(HMA)。 这要求在config.sys中包含有下述命令:
device=Himem.sys
dos=high

虽然Himem.sys本身也要占用少量的常规内存,但可以使用HMA将为我们节省出更多的常规内存。而且在m

sdos7 以上的版本中我们可以用devicehigh=himem.sys将Himem.sys放置在高端内存区。有关dos这个config文件中的特殊命令我们已经在前面讲了。这里就简单的讲讲Himem.sys。
Himem.sys管理扩充内存和高端内存(HMA)的使用。通过device命令在config文件里配置这个设备驱动程序。如果我们使用扩充内存和高端内存,那麽安装Himem.sys的device命令必须先于任何其他驱动的安装。
其命令一般格式为:
device=Himem.sys /选项
选项:
hmamin=0到63的整数,缺省值为0
改选项指定Himem.sys使用HMA(高内存区)之前,dos必须使用的常规内存量。以KB为单位。
numhandles=1到128之间的整数,缺省值为32
该选项指定dos最大可以同时使用的EMB(扩充内存块)柄的数目。每个柄要占用6字节常规内存。
int15=64到65535的整数,缺省值为0
该选项指定15h中断口分配的扩充内存大小。为了保证足够内存可用这个值必须大于64。
machine:相应a20处理器的代码。(这个选项我也不是很清楚)
a20处理器是能够存取高内存区的一种微机部件吧。。。
a20 control:on/off
该选项指定Himem.sys是否获得a20处理器的控制权。缺省值为on。
shadowram:on/off
该选项指定Himem.sys是否关闭ROM(只读存取器)的RAM(随机存取器)部分。
cpuclock:on/off
该选项用于指定Himem.sys是否影响cpu的时钟速度。。。。
dos在同一时刻只允许一个程序使用高内存区。如果我们不指定/hmamin=xxx那么Himem.sys为第一个需要她的程序保留HMA。。

相关文档
相关文档 最新文档