中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » 转贴:理解和访问DOS环境变量
作者:
标题: 转贴:理解和访问DOS环境变量 上一主题 | 下一主题
mys
元老会员




积分 5170
发帖 1637
注册 2002-10-16
来自 广东佛山
状态 离线
『楼 主』:  转贴:理解和访问DOS环境变量

理解和访问DOS环境变量


环境变量是DOS系统的变量存储区,是一个高速暂存存储器,它保存于RAM中,是DOS系统保存重要信息以供批处理文件使用的场所。在DOS中,我们时时刻刻都在用着环境变量。

一般可通过两种方法,具体如下:

一、 用SET命令。如何造访环境SET命令可用于设置、个性和查看环境变量,键入无参数的SET命令可显示当前环境设置。这些设置一般包括COMSPEC和PATH环境变量,MS-DOS用它们在磁盘上寻找程序。另外还有PROMPT、DIRCMD、COPYCMD等为DOS系统所使用的其它环境变量。这些环境变量大多在AUTOEXEC.BAT或CONFIG.SYS文件中用SET命令设置而生成。

二、 通过DEBUG命令。DEBUG是DOS提供的调试程序的有力的工具,利用它可以检验磁盘原始信息、查看内存单元、反汇编程序文件或生成新程序等等,然而DEBUG命令有一定的危险性,因此用户在使用过程中须注意。
DOS系统每运行一个程序都要生成一个256字节的内存块的程序段前缀PSP(Program Segment Prefix),它包含了一些比较重要的信息,如内存单元、矢量、命令行上键入的文件名、命令行本身(用户运行程序的命令行的拷贝)、各种保留缓冲器存储地点的信息。只要涉及环境,那些存储地点之一就会保存系统环境地址。
在DOS中,常用的环境变量一般有六个。对于这六个变量具体的说明如下:

一、 COMSPEC变量。这个变量规定了COMMAND.COM文件的位置。通常,如果计算机由硬盘驱动器引导COMSPEC变量表示为“COMSPEC=C:\COMMAND.COM”,如果是从软盘驱动器引导的,则COMMSPEC变量表示为“COMSPEC=A:\COMMAND.COM”。

SET命令可以改变COMSPEC的位置,其格式为“SET COMSPEC=C:\DOS\COMMAND.COM”。此命令在系统环境中把COMSPEC重新设置成C盘DOS目录中的COMMAND.COM文件,因为COMMAND.COM不需要在用户的根目录中。用户也可以把COMMAND.COM放进其它子目录中,采用CONFIG.SYS的SHELL命令来完成这项工作。在计算机的启动过程中,CONFIG.SYS是在COMMAND.COM装入之前运行的,用SHELL命令通知DOS系统COMMAND.COM在另一个目录中,则系统到那个目录去找它。这有一个明显的优点,它保持了要目录的清洁。

另外,为保证系统能政党运行,用户还需在CONFIG.SYS文件中加上“SHELL=C:\DOS\COMMAND.COM/[/E:1024]”此命令提示DOS在C:\DOS子目录寻找并运行命令解释程序或外壳程序COMMAND.COM。如果把此命令加到CONFIG.SYS文件中,可提前把COMMAND.COM移到DOS子目录中。P选项指示COMMAND.COM在根目录中寻找AUTOEXE.BAT文件并且运行它,如果没此选项,则根目录下的AUTOEXEC.BAT文件不能运行。当DOS系统没有更多的空间存储环境变量时,将会看到“Out of environment space”(环境空间溢出)信息,出现这种情况后,可利用SHELL命令加大COMMAND.COM的环境空间,可选项E:1024就是将环境空间扩大到1KB(1024字节)

二、 PROMPT变量。这个环境变量显示用户所设置的命令提示符。DOS系统提示符一般设置为显示当前驱动器和路径接一“>”符号,当然也可以设置为其它类型的命令提示符,这个变量一般在AUTOEXEC.BAT文件中设置,命令使用的一般格式为“PROMPT $p$g”,当然你也可以使用“SET PROMPT=$p$g”命令。

三、 PATH变量。这个环境变量包括用PATH命令设置路径,使DOS系统能在指定的目录中搜索可执行的文件。

四、 DIRCMD变量。这个环境变量让用户确定DIR命令缺省使用和开关的参数集。用户可在AUTOEXEC.BAT文件中或命令提示符下使用SET命令定义DIRCMD环境变量,预先设置DIR的参数和选项的合法组合(可包括路径和文件名)。

例如要把DIRCMD环境变量设置为满屏时暂停(/P)为缺省格式,在AUTOEXEC.BAT批处理文件或DOS命令提示符下键入“SET DIRCMD=/P”,这时使用DIR命令,在满一屏时将轶并提示“按任意键继续”。若不想使用这个缺省格式,可在命令行上使用“DIR /-P”。如要清除此缺省设置,在命令提示符下键入“SET DIRCMD=”命令。

五、 COPYCMD变量。你可以通过调协COPYCMD环境变量,指定COPY、MOVE、XCOPY命令是否先给出提示,经确认后再覆盖文件。若强制要求COPY、MOVE、XCOPY命令在所有情况下均先给出提示“Overwrite Filename(YES/NO/ALL)?”就职把COPYCMD环境变量设置成/-Y(SET COPYCMD=/-Y),用户可以根据需要来选择是否覆盖。也可以强制要求COPY、MOVE、XCOPY命令在所有情况下都不提示就进行覆盖,则把COPYCMD环境变量设置成/Y(SET COPYCMD=/Y)。这里所设置的COPYCMD环境变量,优先于COPYCMD环境变量的所有缺省值和当前值。

六、 TEMP变量。TEMP是一个常用的环境变量,它告诉程序在何处建立临时文件,而有一些程序需要使用环境变量来识别它们要使用的目录。如“SET TEMP=C:\DOS”,在这里环境变量TEMP被DOS环境和一些其它程序使用,以确定当前文件子目录的位置。上面的目录C:\DOS被放入环境中,现在DOS系统知道把它们当前的文件放在哪里。在AUTOEXEC.BAT文件中,用户能够也应该设置环境的整个转换。




我的网志
http://hzmys.blog.163.com/
我的网盘
firststep.qjwm.com
fsmys.ys168.com
ssmys.ys168.com
www.brsbox.com/fsmys
www.brsbox.com/ssmys
www.brsbox.com/ccdos
2003-5-14 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (2664429)  编辑帖子  回复  引用回复
tanglu_sd
高级用户




积分 948
发帖 271
注册 2002-12-13
来自 sd
状态 离线
『第 2 楼』:  

谢谢,正想问点这方面的知识,真是太及时了。

2003-5-14 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
YP7351
初级用户




积分 188
发帖 23
注册 2003-7-17
状态 离线
『第 3 楼』:  

非常感谢!!!

2003-8-23 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
laochang409
中级用户




积分 297
发帖 44
注册 2004-6-15
状态 离线
『第 4 楼』:  

thank!

2004-6-24 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
linux1234
中级用户




积分 293
发帖 42
注册 2003-10-17
状态 离线
『第 5 楼』:  

好好学习,天天向上

2004-7-13 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: