DOS问答 李大学 1994-05-13 ●问:怎样理解DOS的命令格式? 答:在一般讲DOS的书中,对DOS命令的一般格式的书写有如下的约定: ■[ ]项 方括号内的项表示是任选的。括起来的任选项只须打入方括号内的信息,不打括号。 ■CAPS(大写)项 用大写字母表示的字,被称为关键字。DOS命令是关键字。在键入DOS命令时,关键字也可以小写或大小写混合输入。DOS将自动转换成大写。 ■小写斜体项 用小写斜体表示的项,意味着输入是你要替代该项。如果斜体项是在方括号内,则该项还是任选的。 ■| 竖杠表示两者之一均可。输入时只允许选择其一。 ■… 表示这一位置上可以重复一个项。 ●问:一条DOS命令正在执行时,怎样暂停或者停止? 答:暂时停止一条DOS命令的运行,可按Pause键(在键盘右上角,和Break是同一个键)。 要继续执行时,可打任意字符或者回车。 停止一条DOS 的运行,可同时按ctrl和C或者同时按ctrl和Break。 ●问:DOS对文件名有哪些规定? 答:文件命名包括文件名及其扩展名的命名。对文件名及其扩展名,DOS规定: ■文件名可以有1~8个字符;扩展名可以有1_3个字符。 ■文件名和扩展名之间用“.”分开。 ■在文件名和其扩展名中,可以使用的字符包括:26个英文字母(不区分大小写),0到9共十个数字,其它字符如$、@、#等。 ■在文件名及其扩展名,不允许使用任何控制字符、空格以及“1”,“<”,“<”,“^”,“+”,“=”,“/”,“[”,“]”,“:”,“;”,“?”,“*”,“"”,如此等等。因为这些字符在DOS中有另外的含义。 ■对文件扩展名还有如下约定: A可执行文件必须具有后缀COM、BAT、EXE之一。其它后缀的文件不能运行。 B用后缀SYS标识文件是系统配置成设备驱动文件。用ASM后缀标识文件是汇编语言源文件。用BAK标识文件是备份文件。用DOS指示文件是一个资料文件。常用的后缀还有一些,它们一般有约定俗成的意义。 ●问:DOS为什么采用目录管理?什么是树形目录结构? 答:磁盘或者高容量软盘可能有很多文件。我们把有一定关系的文件作为一组按目录来存贮,这有什么好处呢?首先是便于实现分级化、层次化管理。其次是文件列表显得简洁。更重要的是,目录管理减少了文件定位的时间。DOS 2.0以前的版本没有子目录管理功能,所有的文件堆在一起,用dir命令列表时要显示很长时间,这给查找和其它文件操作带来了极大的不便,而且不能有同名的文件存在。有了子目录这个概念后,不同子目录的文件可以同名,能够独立完成一定功能的文件我们也可以把它们放在一个独立的子目录中,相当于我们形成了一个更大的文件,如果我们把子目录也看作文件的话。这样文件系统可以看成是子目录组成的,象一棵树。树根是一个非常特殊的目录,我们称之为根目录。从根目录向下我们可以创建第二级子目录、第三级子目录。比如我们在根目录创建一个DOS子目录,然后把所有的DOS文件都拷贝到这个目录。还可以建一个我们自己的工作目录Work。在子目录Work下可建立第三级子目录。比如我们建一个CCED子目录,一个WPS目录,一个temp子目录。我们用CCED或者用WPS编辑好的文件我们可以存放到temp目录中去。这样整个目录结构如下: 这样的结构即被称为树形目录结构。 ●问:文件路径是怎么回事?文件操作时,有时要求给出完整的文件路径,有时却只须一个文件名就可以了。为什么? 答:当有了子目录概念以后,磁盘上的文件可以同名。但DOS必须根据文件的不同路径来进一步区分不同的文件。所谓文件路径,就是从根目录算起该文件所在的各级子目录列表。比如在上图中temp目录下,设有一个文件Query.wps,它的完整路径将是:C:\Work\temp。这里假定文件在C盘上。DOS有“\”表示一个子目录指定。比如“C:\”指定根目录。而C:\Work\temp则指明temp目录是work目录的子目录。其中work被称为temp目录的父目录。 机器刚启动时,DOS的其它命令还未执行,系统将处于根目录并显示“C:\>”。这时我们说当前目录是根目录。我们可以用“CD WORK”转换当前目录为C:\Work。而打入c:\work\temp则 设置当前目录为temp目录。 DOS在查找一个文件时,如果没有完整的路径指明,也没有path设置,将只在当前目录中查找文件;即使其他目录中也有同名的文件,它也是先在当前目录查找。为了强制DOS存取我们所需要的不在当前目录中的文件,我们必须给出文件所在的完整路径。所以一般地讲,在存取当前目录的文件时,不需要文件路径指定。存取非当前目录中的文件时,则需要指定文件所在的子目录即完整路径。 在上例中我们把所有的DOS文件都拷贝到了DOS目录中。假设现在我们要在A盘上格式化一张新盘。我们可以用如下命令实现: CD C:\DOS Format A: 也可以直接用C:\DOS\FORMAT A: 显然前一种方法是先转换当前目录到DOS子目录。第二种方法则不管当前目录是什么,只要C:\DOS目录下有FORMAT.EXT文件,命令就可以执行。 ●问:目录管理常用命令有哪些? 答:目录管理包括子目录的创建(MD)、删除(RD)以及当前目录转换命令(CD)。其中MD是Make Directory的首字母,RD是Remove Directory的首字母,而CD是Change Directory的首字母。 这三个命令的一般格式是一样的,即: MD(或RD或CD) [d:]path 其中d:是驱动器指定,可缺省,缺省时指当前盘。path则指明一个路径,也即一个子目录。举一个例子。设在A盘上,软盘已有如下的目录结构: 现在我们想在WPS子目录下再建一个子目录名为Workfile,以备今后把C盘上编辑好的WPS文件拷贝到这一个目录中。我们可以不管当前目录是什么,直接用命令: MD A:\WPS\WORKFILE A:(先把当前盘设为A) CD A:\WPS(转到WPS子目录) MD WORKFILE(创建当前目录的子目录WORKFILE) RD的运用与些类似。我们同样可以有两种方法将刚建好的子目录WORKFILE删除。 ■直接打入 RD A:\WPS\WORKFILE ■A: CD A:\WPS RD WORKFILE ●问:我打入命令 MD LDX后,系统提示:Bad Command or file name。这个命令不对吗? 答:有两个原因可能导致这个问题。一是当前目前下你已经有一个子目录并且叫LDX。一是你有一个当前目录下的命名的LDX的文件。你可以换一个新的目录名试试。比如你用 MD LDX1 ●问:我在删除一个目录时,用了如下的命令:RD LDX,系统提示: Invalid path or Directory not empty 但我用CD LDX和DIR查看时,发现LDX目录中早没有文件。请问是什么原因? 答:RD命令删除目录时可能不能正常删除。这有几种情况。首先你要删除的目录要确实存在。其次这个目录下不能再有没有被删除的子目录或者文件。你用DIR并没有列出文件来,这并不能保证LDX目录是空的。因为这时该目录下可能有其它子目录,或者有一些不能用DIR显示出来的文件。这些文件具有隐含的属性。可以用PCTOOLS或者DOSSHELL查看一下。只有删除了该目录下的所有文件及子目录后,才能删作这个目录。 ●问:我想将file1.txt、file2.txt、file3.txt组合成一个文件,并命名为file3.txt。我键入了如下的命令: Copy file1.txt+file2.txt+file3.txt file3.txt 系统提示: Content of destination lost before copy. 请问是怎么回事? 答:在《怎样使用DOS和CCDOS》题材中第55页,谈COPY的三种用法时阐明。用Copy命令去组合一级文件时,如果目标文件名和源文件名之一同名,则这个源文件必须最先列出。所以正确的命令应是: Copy file3.txt+file1.txt+file2.txt file3.txt ●问:在C盘上我有一个工作目录\work。在work目录下还有一些子目录。现在我想把work目录及其子目录中的所有文件都保存到软盘上去,并且采用原来的子目录名。请问如何实现? 答:可以使用DOS提供的XCOPY命令,在教材中未提及该命令的用法,略作补充。这是一个外部命令,其功能是完成一个目录及其子目录中各组文件的拷贝。 你可以键入如下的命令: XCOPY C:\WORK A:/S/M 其中“/S”选项命名XCOPY完成源目录及其下的子目录中所有文件的拷贝。“/M”选项则使你在软盘容量不够时,还可以再次键入以上的命令。XCOPY自动将没有拷贝过的文件继续拷贝到软盘上。 ●问:怎样让打印机打印一个文本文件? 答:比较简单的方法有两个。一是用type命令。设文本文件是file.txt,可以用: type file.txt >prn 则file.txt的文件内容被送到打印机。命令中“>”是DOS重定向指示符。type命令执行时一般是在屏幕上显示。用了“>”后将在打印机上“显示”,亦即完成了打印功能。 另一方法是用COPY命令。即用: Copy file.txt prn