DOS的环境变量

Author: 天津 王光宇 Date: 1995-10-27

        在默认状况下,这个区域大小为160字节,一旦所存放的环境变量太大,以至于超出了这个区域,则会产生一个“环境变量溢出”的错误,且超出部分丢失,在CONFIG.SYS文件中,可通过命令shell=[path]COMMAND.COM /P /E:xxxx来将变量区大小改变为xxxx字节大小。(xxxx的取值范围在160~32767之间)。
        环境变量的设置可在CONFIG.SYS、AUTOEXEC.BAT或DOS命令行下,用set命令设置。其格式为set [string1=[string2]]。它用来把字符串string2赋值给名为string1的环境变量。若省略string2,则将变量string1置空。若只是无参数的set命令,则显示环境变量的已有设置。通过set命令设置的变量长度最长为123字节。
        某些特殊的环境变量也还可通过命令来设置。如path、comspec、prompt等保留变量分别可通过path、comspec、prompt命令来设置,它们的最大长度为127字节。
        在高版本DOS中,有一些系统固有的环境变量。介绍如下:
        prompt:它是由prompt命令设置的,其值为当前DOS提示符的格式。
        path:它是由path命令设置的,其值保存了系统搜寻路径。
        config:它是在多分支引导系统中,所运行的引导块的名字。它是由DOS引入多重配置引导后出现的。常用来在AUTOEXEC.BAT中配合CONFIG.SYS中的多重配置。
        comspec:它是由comspec命令或shell命令设置的,其值保存了命令处理器(command.com)的路径。
        还有两个未公开的环境变量DIRCMD和COPYCMD,用来设置DIR和COPY命令的默认参数。
        如设置set DIRCMD=/P/A/O,则每次键入无参数的DIR命令时,实质上相当于键入DIR /P/A/O,即分屏、排序地显示包含隐含文件的所有文件。若想取消DIRCMD中的设置,可将其置空;若想临时取消某个参数,可在DIR命令后标注取消。例如在以上设置下,想显示不排序的文件目录,则可键入DIR/-O。也可将DIRCMD设为某个路径或某个文件名,则无论在何目录下,键入DIR都相当于同时键入了该目录或文件名。这可起到一种简单的加密作用。
        COPYCMD作用类似。
        许多应用程序也设置环境变量,如PCTOOLS、声卡驱动程序等等。在批处理程序中,也常常使用环境变量。因此,要适当地调整环境变量区的大小,以防溢出。
        (天津  王光宇)