你的位置:| 首页>>电脑基础教育>>DOS知识补遗>>文章正文  
文章导航


DOS知识补遗


DOS系统的维护

  一个系统只有进行好的维护,才能发挥出好的效果。那么,对于DOS系统,应当如何维护呢?

  首先,要定期检查磁盘的错误。DOS下有许多命令可以用来检查磁盘,如CHKDSK,SCANDISK等。而一个更强大的磁盘工具则是Norton的Disk Doctor(磁盘医生),它有着友好的界面和强大的功能,可在“DOS软件分类下载“中下载。只有定期检查磁盘,才能保证磁盘使用的稳定性。

  其次,要定期检查病毒。计算机病毒是一种能严重危害系统安全和数据完整的破坏性程序,如果任其发作,可能会造成严重的损失。所以,定期检查病毒是非常重要和必要的。要检查病毒,需要使用好的杀病毒软件,而且注意经常升级病毒库,否则起不到应有的效果。实用的DOS下杀毒软件有F-PROT,Norton AntiVirus,KV3000等,可以在“DOS软件分类下载“中下载。当然,光使用杀毒软件,却不注意防范,也是不行的。防毒通常比杀毒更有效,因为防毒可以大大减少病毒感染的可能性。防毒的方法有多种,如使用病毒防火墙程序,不要使用来历不明的软件等。通过这些方法,病毒通常无法侵入。

  然后,要定期备份重要的数据。因为即使采用了前面的两种措施,也只能大大降低数据被破坏的可能性,而不是高枕无忧了。由于误操作或硬件故障等原因造成的数据丢失情况随时都可能发生。因此,备份数据就十分必要了。通常可将它们备份到软盘或其它硬盘中以防不测,以免到时后悔莫及。

  当然,还需要进行一些其它维护,如定期整理磁盘碎片,删除垃圾文件,以及将文件和软件归类以方便使用等。

  对于系统配置的维护也是非常重要的,也可以使用一些工具软件来进行自动维护,如用MEMMAKER等。这样可以有效地节省时间和精力。

DOS下内存的配置

  我们大家都知道,DOS大体上不能够完全依靠人机界面的方式来一步步地完成系统的配置。若要让系统发挥出最大的性能,必须依靠我们的进一步努力。下面介绍一下DOS内存的配置方法。

  实模式的DOS通常只能使用1M以下的内存空间。其中基本内存为640K,而上位内存则需要相应的内存管理器。基本内存的管理尤为重要,因为使用不当会造成一些程序无法运行。那么,应如何优化使用它呢?这儿有一些建议。

  首先,加载提供上位内存(UMB)的内存管理器。通常有EMM386和QEMM等,不过这些工具自身占用的内存较大,在此推荐的是UMBPCI,这是一个仍在发展的工具,可提供最大高达162K的UMB,而且如果放在HIMEM前可完全不占用基本内存。然后,将所有的设备驱动程序/TSR调入UMB(用DEVICEHIGH,LOADHIGH等),这样,即使加载许多驱动程序(如光驱,鼠标等),剩下的基本内存仍会很高,甚至630K。要注意的是,尽量使用占内存较少的驱动程序,以便空出最多的UMB。

  以下是在我的电脑上(MS-DOS 7.10)用MEM/A/C命令显示出的内存状态信息:

Modules using memory below 1 MB:

Name Total Conventional Upper Memory
-------- ---------------- ---------------- ----------------
SYSTEM 32,736 (32K) 9,664 (9K) 23,072 (23K)
HIMEM 1,168 (1K) 0 (0K) 1,168 (1K)
SETVER 864 (1K) 0 (0K) 864 (1K)
VIDE-CDD 5,024 (5K) 0 (0K) 5,024 (5K)
CLOAKING 1,168 (1K) 0 (0K) 1,168 (1K)
IFSHLP 2,864 (3K) 0 (0K) 2,864 (3K)
COMMAND 7,424 (7K) 0 (0K) 7,424 (7K)
KILLER 400 (0K) 0 (0K) 400 (0K)
WATCH 3,392 (3K) 0 (0K) 3,392 (3K)
MSCDEX 2,816 (3K) 0 (0K) 2,816 (3K)
DOSKEY 5,744 (6K) 0 (0K) 5,744 (6K)
CTMOUSE 3,344 (3K) 0 (0K) 3,344 (3K)
ZENO 1,376 (1K) 0 (0K) 1,376 (1K)
ESCAPE 496 (0K) 0 (0K) 496 (0K)
Free 750,080 (732K) 645,328 (630K) 104,752 (102K)

Memory Summary:

Type of Memory Total Used Free
---------------- ----------- ----------- -----------
Conventional 655,360 10,032 645,328
Upper 163,904 59,152 104,752
Reserved 393,216 393,216 0
Extended (XMS) 49,119,168 82,880 49,036,288
---------------- ----------- ----------- -----------
Total memory 50,331,648 545,280 49,786,368

Total under 1 MB 819,264 69,184 750,080

Largest executable program size 645,312 (630K)
Largest free upper memory block 103,952 (102K)
Available space in High Memory Area 5,360 (5K)
MS-DOS is resident in the high memory area.

  从上表中可以看出,我加载了以下内存驻留程序及驱动程序:

  HIMEM:DOS中自带的XMS驱动程序。

  SETVER:DOS版本表程序。

  VIDE-CDD:通用光驱驱动程序。如果您的光驱是USB的,则用DUSE。

  CLOAKING:内存CLOAKING API及DPMS驱动程序,以节省MSCDEX的内存占用。

  IFSHLP:32位的磁盘服务程序,用于Windows 9x中,可以不加载。

  COMMAND:DOS命令处理器。

  KILLER:自动截获不正确的指令,防止死机。

  WATCH:TSR Utils中的一个,DISABLE命令利用它可以禁止其它TSR程序的功能。

  MSCDEX:和CLOAKING程序合用的MSCDEX,只占不到3K内存,否则要占约30K。

  DOSKEY:DOS自带的键盘缓冲和历史程序。

  CTMOUSE:DOS下通用的鼠标驱动程序,占内存小,速度也非常快。

  ZENO:显示加速程序。

  ESCAPE:在任何时候都可以按F12键退回到DOS方式下,以防止死机。

  当然,我还加载了不少非内存驻留程序。如果您想知道我的CONFIG.SYS文件中的具体设置内容,可看下面的“CONFIG.SYS文件的命令与配置“。

CONFIG.SYS文件的命令与配置

  命令与配置

  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\DOSKEY.COM /APPEDIT

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

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

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

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

  SHELL:指定DOS 使用的命令解释程序的名称和位置。
  用法:SHELL=文件名 [参数]
  注:文件名默认是COMMAND.COM,您也可以指定其它的文件,如4DOS.EXE等。

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

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

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

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

  知道了以上的命令后,就要谈谈如何利用这些命令来配置CONFIG.SYS文件了。配置的好坏对系统的影响是非常大的。以下是我的电脑(都是MS-DOS 7.10)中CONFIG.SYS文件中的内容,大家可以用作参考。

电脑一,使用EMM386.EXE:

device=d:\tools\dostools\echo.sys L/o/a/d/i/n/g CONFIG.SYS...
device=d:\tools\mdctools\himem.sys /testmem:off
device=d:\tools\mdctools\emm386.exe noems novcpi i=b600-b7ff
devicehigh=d:\tools\mdctools\setver.exe
devicehigh=d:\software\pwin98se\ifshlp.sys
devicehigh=d:\tools\dostools\vide-cdd.sys /d:CDROM1
devicehigh=d:\tools\dostools\cloaking.exe
country=086,936,d:\tools\mdctools\country.sys
shell=c:\command.com /p /e:640
set temp=e:\temp
set tmp=e:\temp
accdate=c+ d+ e+
dos=high,umb
numlock=off
files=30
buffershigh=30,0
fcbshigh=4,0
lastdrivehigh=n
stackshigh=9,256

电脑二,使用UMBPCI.SYS:

device=d:\tools\dostools\echo.sys L/o/a/d/i/n/g CONFIG.SYS...
device=d:\tools\dostools\echo.sys
device=d:\tools\dostools\umbpci.sys
device=d:\tools\dostools\hiram.exe
devicehigh=d:\tools\mdctools\himem.sys /testmem:off
devicehigh=d:\software\pwin98se\setver.exe
devicehigh=d:\software\pwin98se\ifshlp.sys
devicehigh=c:\dos\vide-cdd.sys /d:CDROM1
shell=d:\tools\mdctools\command.com /p /e:640
set temp=e:\temp
set tmp=e:\temp
accdate=c+ d+ e+
dos=high,umb,auto
country=086
numlock=off
fileshigh=30
buffershigh=30,0
stackshigh=9,256
lastdrivehigh=n

  您不妨试试,相信您也会做出好的CONFIG.SYS文件来。

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命令就行了。但如果您是想完成一些更复杂的操作,就需要以上的批处理命令或上述的批处理工具了。

  以下是我原来所编的一个从1%慢慢增加到100%的批处理小程序,大家可以用作参考,以编写自己的程序。

@echo off
break off
cls
set c=0
writext 10 1 Wait...
be delay 4
:loop
writext 10 9 %c%%%completed.
count c
if not %c%==101 goto loop
echo.
set c=
kpush /f
break on

  其中,我用到了WRITEXT,COUNT,BE和KPUSH,这些都是批处理工具。WRITEXT是ECHO的增强工具,可以自定义显示的效果。COUNT是变量的计算工具,如原来C的值为1,执行COUNT C后C的值就为2。BE是个强大的批处理增强工具,在Norton Utilties 8.0中带有。KPUSH是键盘缓冲工具。

  总之,利用批处理命令和批处理增强工具,我们可以编出许多强大的批处理文件来,大家不妨一试。

DOS未公开命令与参数

  DOS系统中有许多未公开的命令与参数。由于DOS的种类很多,所以下面仅以MS-DOS为例,介绍一下常用命令中的未公开的命令与参数。

  DOS未公开命令:

TRUENAME:用于显示实际的路径,对SUBST等命令很有用。
INSTALLHIGH:用在CONFIG.SYS中,将文件调入UMB。
LOGO和COMMENT:仅用在DOS7中的CONFIG.SYS中,用法未知。

  DOS未公开参数:

COMMAND /F 使Fail作为Abort,Retry,Fail中的默认选项。
COMMAND /D 在DOS5中是禁止AUTOEXEC.BAT自动执行;在6.0+版本中是禁止/F参数。
COMMAND /Z 显示ERRORLEVEL(错误返回代码)信息。
COMMAND /T 在DOS7.x中强制将COMMAND.COM永久性调入常规内存。

FORMAT /AUTOTEST 自动完成格式化过程。
FORMAT /BACKUP 自动完成格式化过程,并提示输入卷标。
FORMAT /SELECT 只在磁盘上备份系统区数据,相当于MIRROR程序。
FORMAT /SELECT /U 将引导区和文件分配表用F6H填之。
FORMAT /Z:n 设置FAT32分区上的簇大小。

FDISK /MBR 重写硬盘主引导记录。
FDISK /CMBR drive 重写指定驱动器上的主引导记录。
FDISK /PRI:size 创建主分区。
FDISK /EXT:size 创建扩展分区。
FDISK /LOG:size 在扩展分区上创建逻辑驱动器。
FDISK /PRMT|/Q 提示行动/安静模式。
FDISK /PARTN 将分区表信息保存到PARTSAV.FIL中。
FDISK /ACTOK 用于DOS7中,跳过完整性测试。
FDISK /FPRMT 用于DOS7中,自动采用FAT32,并跳过提示信息。

 



  上一页 1 2 3 4 5 下一页