Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1808833
  • 博文数量: 272
  • 博客积分: 1272
  • 博客等级: 少尉
  • 技术积分: 1866
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-09 15:51
文章分类

全部博文(272)

文章存档

2016年(16)

2015年(28)

2014年(97)

2013年(59)

2012年(25)

2011年(47)

分类: Python/Ruby

2011-11-11 00:18:31

DOS是disk operation system的简称。它是计算机硬件和用户之间的一个中
介,使用户能够方便地操作计算机。DOS提供了两种东西:第一种,丰富的操作命
令,包括文件的拷贝,删除,备份,目录的创建和浏览,磁盘的格式化等。第二
种,众多的DOS中断调用,供在DOS下开发程序使用。
  DOS有它的缺点,使用它得记忆大量的命令名称和命令参数,在操作上需要使
用者有熟练的指法。它的文件名只能是8个字符,使用者为了替文件取个直观易记
的名字不得不绞尽脑汁。它的界面是黑白文本,不太美观。它对内存的管理效率
不高,在DOS下开发程序时,程序只能直接使用内存中最低部分的一兆字节,剩下
的部分必须用复杂的方法来使用。基于DOS的程序在内存寻址时只能用16位地址值
,还分为段地址和偏移地址两部分,给程序开发带来不便。
  时至今日, windows95/98/NT等图形界面的操作系统大行其道,它们克服了
DOS的种种缺点,但也带来了新的缺点。它们的体积庞大,占用硬盘数百兆,需要
至少四兆的内存才能运行。它们的结构复杂,维护不便。系统的配置麻烦,晦涩
难懂的注册表和大量的INI文件,SYS文件使初学者望而却步。而所有这些恰恰是
DOS的优点。DOS体积小巧,一张软盘即可将必要部分装下。它的结构简单,只在
硬盘里占用一个目录。构成DOS的文件数量少,甚至只要三个文件就可以用了。D
OS的配置简单,只用CONFIG.SYS和AUTOEXEC.BAT两个文件就搞定。当windows出现
故障时,得用DOS来启动并修复。


  为了接下来的学习,让我们先把DOS启动起来。在一台安装了DOS的电脑上,
打开电脑显示器电源,再打开主机电源,过一阵子,屏幕上第一行会出现Starti
ng MS-DOS....的字样。随后可能会有别的信息显示。最后会出现如下的字符:

C:\>_
  上面那个“C:\>”叫做提示符,意思是DOS已经准备好接受你的命令了。提示
符的样子可能在不同情况下会有不同,例如可能会出现下列提示符:
C:\DOS>_
D:\WINDOWS>_
C:\WINDOWS\SYSTEM>_
D:\WORK>_
E:\DAT>_
A:\>
等等。这主要和一个叫做“当前目录”和“当前驱动器”的概念有关,下文中会
提到的。


  文件是磁盘上某一批数据的一个集合,由一个名字来识别,这个名字叫做文
件名。
在DOS里,文件名由两部分构成:主名和扩展名,两者之间由一个点号“.”隔开
。主名由最多八个字母和数字构成,且第一个字符必须是字母。扩展名由最多三
个字母和数字构成,第一个字符不要求必须是字母。只有主名没有扩展名是可以
的,但不能只有扩展名没有主名。如果两个文件名,它们的主名和扩展名中只要
有一个不同,他们就被当作不同的文件名。在DOS里,文件名里的字母是不区分大
小写的,就是说,如果两个文件名仅仅只是字母的大小写不同,那么它们将被当
做同一个文件名。举几个文件名的例子:
        debug.exe
        debug.com
        debug
        Debug.com
        debug.123
        a02.ha
上面都是合法的文件名。其中第二个和第四个文件名其实是同一个文件名。再看
下面的例子:
        123abc.dat
        myarticle.txt
        goo.ha01
        .exe
        fui%.gaa
上面都是不合法的文件名。第一个文件名的主名不是以字母开头。第二个文件名
的主名超过了八个字符。第三个文件名的扩展名超过了三个字符。第四个文件名
没有主名。第五个文件名里包含了不能用于文件名的字符。
原则上扩展名可以任意取,只要符合上述的规则。但是在DOS及后来的windows系
列里,已经默认了一些特殊的扩展名代表一些特定的文件。扩展名exe和com用来
代表该文件是一个可以执行的程序,扩展名BAT表示文件是个批处理文件,DRV表
示该文件是个设备驱动程序。
别的一些扩展名例子如:
      jpg    一种图象文件的扩展名
      bmp   一种图象文件的扩展名
      c    c语言的源程序文件的扩展名
      cpp   c++语言的源程序文件的扩展名
      bas    basic语言的源程序文件的扩展名
      gif    一种图象文件的扩展名
      htm   超文本文件的扩展名
      doc   WORD文书文件的扩展名
  实际上有着数百种各式各样的流行扩展名。原则上扩展名是可以任意起的,
只要符合前面提到的命名规则,并不一定要求某种类型的文件必须用某种扩展名
。上面提到的不同类型的文件有不同的扩展名,这只是一种约定俗成。
在DOS提示符下,键入dir并按回车,如下所示:
   C:\>dir <回车>
  为了讲解的方便,在dir下加了下划线,表示是我们自己输入的东西。<回车
>表示按了回车键。以后的命令例子我们都按照这个约定来写。
  此时屏幕上就会列出一大堆文件名和别的东西,例如:

Volume in drive C has no label
Volume Serial Number is 166E-1CEE
Directory of C:\WINDOWS

.         

     05-20-99 21:37 .
..        
     05-20-99 21:37 ..
SYSTEM      
     05-20-99 21:40
COMMAND      
     05-20-99 21:40
WINSOCK   DLL      21,504 05-20-99 21:41
WIN     INI      8,665 07-17-99 18:23
TELEPHON  INI       225 05-20-99 22:13
HWINFO   EXE     110,592 06-19-98 20:01
NETDET   INI      7,885 06-19-98 20:01
SMARTDRV  EXE      45,379 06-19-98 20:01
SYSTEM32     
     05-20-99 21:41
HIMEM    SYS      33,191 06-19-98 20:01
RAMDRIVE  SYS      12,663 06-19-98 20:01
  其中含有
的那些项是下一节要提到的目录,其他的都是文件名。列出的
每一行文件名包含五列,第一列是文件的主名。第二列是文件的扩展名。第三列
是文件的大小,用字节数表示。第四列是文件被创建的年月日。第五列是文件被
创建的钟点。
  文件名中可以出现两个特殊的字符:“*”和“?”。这两个字符是有特殊意
义的。例如:
  文件名abc*代表所有那些主名前三个字符是abc的文件名。
  文件名file.*代表那些主名是file,扩展名任意或没有扩展名的文件。
  文件名compt.e*代表那些主名是compt扩展名的第一个字符是e的文件。
  文件名*.exe代表扩展名是exe,主名是任意的文件。
  文件名ab*.e*代表那些主名前两个字符是ab,扩展名第一个字符是e的文件。

  文件名tg*a*.r*代表什么?它代表那些主名前两个字符是tg,扩展名第一个
字符是r的文件。要注意DOS只解释出现在主名或扩展名里的最左边一个*号,这个
*号右边的字符都将被忽略不做解释。在这个例子中,tg*a*.r*和tg*.r*是一样的
,因为其中的a*被忽略了。
  文件名ab?ht.*代表那些主名前两个字符是ab,第三个字符是任意字符,最
后两个字符,也就是第四和第五个字符分别是h、t,扩展名是任意或没有扩展名
的文件。
  文件名???.exe代表那些主名有三个字符,扩展名是exe的文件。
  文件名abc.?代表那些主名是abc,扩展名只有一个字符的文件。
  “*”和“?”被称为通配符。它们之间的区别是*号可以代表0个,1个或多
个字符,?号必须而且只能代表一个字符。

  可以把一个目录想象成一个箱子,箱子里放了各种各样的文件。
  目录也必须有个目录名。目录名的命名法则和文件名的命名法则是一样的。
但一般来讲目录很少使用扩展名,尽管也可以用。目录名也和文件名一样,其中
的字母是不分大小写的。
  目录这个箱子里除了文件之外还可以有若干个箱子,箱子里还能再有箱子。
目录里的目录叫子目录,包容子目录的目录叫做子目录的父目录。目录的这种一
级嵌套一级的样子,很象一棵树,从根部开始长出一支支树干,每支树干上还有
更小的树干。位于最根部的那个目录叫做根目录。前面说了,每个目录都得有个
目录名,唯一例外的是这个根目录,它是没有目录名的,如果硬要指出它的名字
的话,可以认为根目录的目录名是“\”,参见后面的<<路径和文件全名>>一节。
目录最好不要嵌套过深,否则的话使用起来会很麻烦。
  DOS提供了一个命令来创建目录:mkdir,简单写为md。在DOS提示符下键入m
d 和目录名并回车:
     C:\>md aaa <回车>
  那么你就创建了一个名叫aaa的目录。紧接着使用dir命令看看,它会列出一
大堆东西,包括你刚刚创建的目录:
.....
.....
aaa     

     08-20-99 13:41
  DOS还提供了一个删除目录的命令:rd。但这个命令只能删除空目录,就是那
些里面还没有任何东西的目录。正好刚刚创建的这个目录aaa是个空目录,所以可
以用rd试试:
     C:\>rd aaa <回车>
  再用dir命令列列看,aaa目录看不到了,它已经被删掉了。
  上面已经用过几次dir命令。我们在使用时输入dir就直接回车了,它列出来
的是当前目录里的子目录和文件。所谓当前目录就是目前正在操作的目录。在很
多DOS命令包括dir命令里,如果不特别指明该命令作用在哪个目录上,那么这些
命令将作用在当前目录上。DOS提供了一个命令用来将某个已存在的目录设置成当
前目录(俗称“进入”某个目录):chdir,简写为cd。让我们先用md命令再创建一
个叫做aaa的目录,然后用cd命令把aaa目录设置成当前目录:
    C:\> md aaa <回车>
    C:\>cd aaa <回车>
  此时注意观看提示符,它是不是变成了这样:
    C:\AAA>_
  没错,从提示符的形状来看当前目录是一个很方便的方法,但有时侯并不灵
。查看当前目录是哪个目录的最可靠方法还是用cd命令,例如:
    C:\AAA>cd <回车>
  这回我们键入了cd就直接回车了,它显示出:
    C:\AAA
  这就告诉你,当前目录是aaa。
  简单提一提什么叫做当前驱动器。电脑上一般有一个3.5英寸的软盘驱动器,
叫a驱;一个5英寸的大软盘驱动器(现在的电脑好象都没有了),叫做b驱;还有
一个或多个硬盘。硬盘是可以划分逻辑分区的,第一个分区叫c盘,第二个分区叫
d盘,如此等等;还有一个光驱,如果最后一个硬盘逻辑分区叫做g盘的话,这个
光驱就叫h盘,总之它是排在最后。所有这些a呀b呀什么的都叫盘符,就是识别一
个磁盘或分区的符号。
  如果我们当前是在c盘上工作,那么c盘就叫当前盘,它的盘符c就叫当前盘符
。DOS中用来将别的盘设置为当前盘的方法是键入盘符和一个冒号并回车。例如:

    C:\>d: <回车>
  此时如果d盘存在,那么当前盘就变成了d盘;如果d盘不存在,DOS会提示你
这是一个非法的盘符:Invalid Drive Specification。
如何知道当前盘是哪个?很简单,看提示符吧。提示符最前面的那个字母就是当
前盘的盘符。
  对于目录里的文件和子目录,对它们的名字有个小小要求:同一个目录里不
能有两个同名文件,也不能有两个同名子目录。但是文件名和目录名相同是可以
的。


  一个文件总是存放在某个磁盘上的某个目录里的。当我们提到这个文件的时
候,免不了要指明这个文件存在哪个盘上,什么目录里,也就是说要指明这个文
件的地址。一个文件的路径就是用来描述文件的地址的。路径其实指明了一个目
录。如果有一个文件user32.dll存放在c盘的根目录下的windows子目录的system
子目录里,那么这个文件的路径就可以写成 “c:\windows\system” 。下面都是
路径的合法例子:
    c:\dos
    d:\myfile\software
    I:\game\install
    \need3\install
    a:\
    \
等等。其中最后一个表示当前盘的根目录,倒数第二个表示a盘根目录。
  上面提到的路径叫做绝对路径,它是这样构成的:首先是盘符,然后是一个
“\”,或者没有盘符,直接就用“\”开始。这里的“\”代表根目录的意思。所
以前面我们说,可以认为根目录的名字是“\”。接下来就是一级套一级的目录,
目录与目录之间用“\”隔开,这时候的“\”与指代根目录的那个“\”的意义是
不同的。
  还有一种路径叫做相对路径。举个例子:“game\install”。这个路径不是
从盘符开始写,也不用“\”开头。这是什么意思?这个路径描述的是当前目录里
的game目录里面的install目录。如果当前目录是c盘根目录下的aaa目录的话,那
么上述路径写成绝对路径就是c:\aaa\game\install。在很多DOS命令中需要提供
某个路径,用绝对路径的话比较清楚但比较麻烦,如果能够写成相对路径的话可
以少敲些键。
  相对路径的表达式里可以出现两个特殊的符号:“.”和“..”。他们有着特
殊意义。“..”这两个小数点连在一起表示当前目录的父目录。“.”表示当前目
录本身。一般“..”用得多一点。例如相对路径“..”,它表示当前目录的父目
录。相对路径“..\aaa”表示当前目录的父目录的子目录aaa。
  在文件名前面加个“\”,再把这个文件的路径附上,就得到了文件的全名。
例如:
     c:\windows\system\kernel32.dll
     c:\work\zrculi.exe
     \myfile\readme.txt
     ..\bbb\*.txt
     ..\install.exe
  这些都是合法的文件全名,大家可以分析分析他们各是什么意思。特别地,
单独的一个文件名有时也可以看作全名,它表示当前目录里的那个文件。


  有了上面几节的预备知识,现在就可以稍微详细地讲解一下DOS里的常用命令
了。要注意在DOS里,命令名里的字母也是不分大小写的。
一. Dir
  这个命令上面已经提到过了,它是用来列出某个目录下的文件名和子目录名
的。上面提到的输入dir后直接回车,其作用是列出当前目录下的所有文件名和子
目录名。其实它还有很多格式,下面一一举例说明。
1.Dir *.*
  这个命令其实和dir后直接回车是一样的。
2.Dir aaa\*.exe
  列出当前目录里的aaa子目录内的全部扩展名是exe的文件名。
3.Dir c:\dos\*.*
  列出c盘根目录下的子目录dos里的全部文件名和子目录名。
4.Dir /p
  列出当前目录里的所有文件名和子目录名。列满一屏后会暂停,按任意键后
继续列出下一屏。
5.Dir c:\windows  /p
  列出c盘根目录里的windows子目录内的所有文件名和子目录名。列满一屏后
会暂停,按任意键后继续列出下一屏。

  好了,大家可能看出来了,dir命令由三部分组成:1。命令关键字dir;2。
一个路径或一个文件全名,文件名里可以用通配符;3。一些就象/p那样的选项。
其中命令关键字是必须的,其他两个可有可无,全看你的需要了。如果第二项是
个路径,那么dir命令将列出该路径里的所有文件名和子目录名。就象例5那样。
如果第二项是个文件全名,由于文件全名里包含了路径,所以dir命令将列出该路
径里的由文件名所规定的那些文件,就象例1,例2和例3。
第三项内容比较多,这里简单列几个。
1./p
  该选项使dir命令列满一屏后暂停,按任意键后继续列下一屏。P是pause的首
字母。
2./w
  通常dir命令列出的文件名包含了长度,创建日期等信息,而且每行只列一个
文件名。该选项使dir命令只列出文件的主名和扩展名,而且每一行可以显示五个
文件名。这叫宽行显示。W就是wide的首字母。
3./od
  第一个字母o是order的首字母,意思是排序。这个选项和下面的几个带o的选
项的作用都是使dir的显示结果按某种方法排好序。
这里d是date的首字母,意思是列出来的文件名和子目录名是按创建时间排了序的
,最早创建的排在最前。
4./on
  这里o就不说了。“n”是name的首字母。这个选项使dir列出的文件名按照文
件主名的字母顺序排序。
5./og
  这里“g”是group的首字母。它的作用是使dir先列出子目录名再列出文件名

6./os
  “s”是size的首字母。它使dir的输出按文件的大小排序,最小的排在前。

7./oe
  “e”是extent的首字母。它使dir的输出按照文件扩展名的字母顺序排序。

8./s
  “s”是search的意思。它使dir命令在文件全名所指定的那个目录及其一切
嵌套深度的子目录里寻找文件全名所指定的文件,并列出结果。当你不知道某个
文件在什么地方时,用这个命令选项非常有用。例如:
  dir myfile.txt /将在当前目录及当前目录的所有嵌套深度的子目录里寻
找文件myfile.txt。
  dir \myfile.txt /s将从当前盘的根目录开始,在所有嵌套深度的子目录
里寻找文件myfile.txt。
  当然了,它还可以寻找目录。只要你输入目录名即可。另外,文件名中可以
用通配符,作用是寻找一批文件。
9./?
  选项还有很多,没必要一一列举。这里举一个自学选项:“/?”。这个选项
将使dir命令列出它的详细用法说明,大家可以参考。事实上,所有的DOS命令都
有这个自学选项。如果你不知道某个DOS命令的用法,只要在命令名后加个/?再
回车即可看到它的用法说明。
  你并非一次只能用一个选项,你完全可以在一个dir命令里组合使用多个选项
,只要各个选项的意义不相矛盾。例如:dir /od/p将列出当前目录里的所有文
件名和子目录名,而且按照创建日期排好了序,列满一屏后会暂停,按任意键又
列下一屏。但是dir /od/os 并不会按你的要求列出文件名和子目录名,因为按
创建日期排序和按大小排序两个要求互相矛盾了,只能满足一个。
  Dir命令的这三个部分之间要用一个或多个空格隔开。

二. Md
  该命令是创建目录的命令。格式如下:
md 路径
  该命令创建由路径所指定的那个目录。不过用得最多的是在当前目录里创建
一个子目录,例如md aaa <回车>就将在当前目录里创建一个名叫aaa的子目录。

  如果欲创建的目录已经存在,该命令会提示你目录已存在。

三. Cd
  该命令由命令关键字cd和一个不带盘符的路径组成。功能是将当前盘内这个
路径所指明的目录设置为当前目录。例如:cd \windows\system\ 回车。该命
令将把当前盘的根目录下的windows的system子目录设置为当前目录。大家应该看
得懂下面的例子:
Cd  \
    将当前盘的根目录设置为当前目录。
cd  ..
    将当前目录的父目录设置为新的当前目录。
cd  aaa\bbb
    将当前目录里的aaa子目录内的bbb子目录设置为新的当前目录。
cd  ..\aaa\bbb
    将当前目录的父目录里的aaa子目录内的bbb子目录设置为新的当前目录

cd  ..\bbb
    将当前目录的父目录里的bbb子目录设置为新的当前目录。

  上面的例子都是路径所指代的目录存在的情况。如果路径所指代的目录不存
在,cd命令将有什么结果?答案是cd命令将不改变原有的当前目录,并且显示一
条错误信息:
Invalid Directory

四. Copy
    该命令是文件拷贝命令。它有七种格式:
1.copy  源文件全名  目标文件全名
2.Copy  源文件全名  目标路径
3.Copy  源路径   目标路径
4.Copy  源路径   目标文件全名
5.Copy  源文件全名
6.Copy  源路径
7.Copy  文件全名1+文件全名2+文件全名3+...+文件全名n  目标文件全名(
不带通配符)
下面分别说明。
1.copy  源文件全名  目标文件全名
  该格式把源文件全名指定的一个或一批文件拷贝到目标文件全名所指定的路
径里,新的文件名使用目标文件全名里指定的文件名。例如:
(1)copy  c:\work\*.bas  c:\temp\*.txt
  该命令把c盘的work目录里所有扩展名为bas的文件拷贝到c盘的temp目录里,
所得到的每个文件的扩展名都变成了txt。
(2)copy  *.*  \dat\file.txt
  该命令把当前目录下的所有文件都拷贝到当前盘的根目录下的dat目录内的f
ile.txt文件里,也就是说,把当前目录里的所有文件都合并成了一个文件。
(3)copy  c:\work\zrculi.bas  a:\myfile.txt
  该命令把c盘的work目录里的zrculi.bas文件拷贝到a盘里,并且重新起了个
文件名叫myfile.txt。
2.Copy  源文件全名  目标路径
  该格式把源文件全名所指定的一个或一批文件拷贝到目标路径里,文件名保
持不变。
(1)copy *.*  c:\aaa
  该命令把当前目录里的所有文件拷贝到c盘的aaa目录里。保持文件名不变。

(2)copy \work\zrculi.exe  a:\
  该命令把当前盘里的work目录里的zrculi.exe拷贝到a盘根目录里。
(3)copy c:\dat\aaa10.31x  c:\dat1
  该命令把c盘的dat目录里的文件aaa10.31x拷贝到c盘的dat1目录里。
(4)copy ..\*.*   a:\
  该命令把当前目录的父目录里的所有文件拷贝到a盘里。
3.Copy  源路径   目标路径
  该格式把源路径所指定目录里的所有文件拷贝到目标路径所指定的目录里,
并且保持文件名不变。
(1)copy c:\work  ..
  该命令把c盘的work目录里的所有文件拷贝到根目录里,因为work目录的父目
录是根目录。
(2)copy a:\  c:\dat
  该命令把a盘根目录里的所有文件拷贝到c盘的dat目录里。
4.Copy  源路径   目标文件全名
  该格式把源路径所指定的目录里的所有文件拷贝到目标文件全名所指定的那
个目录里,并且把文件名改成目标文件全名所指定的文件名。
(1)copy c:\work  a:\*.bak
  该命令把c盘的work目录里的所有文件拷贝到a盘根目录,并且把所有文件的
扩展名改成bak。
(2)copy a:\def  c:\dat\file.dat
  该命令把a盘的def目录里的所有文件拷贝到c盘的dat目录里的file.dat文件
里。就是说把a盘的def目录里的所有文件合并成了一个file.dat文件。
(3)copy c:\myfile  d:\dat\bbb.*
  该命令把c盘的myfile目录里的文件全部拷贝到d盘的dat目录里,并且把文件
的主名全改成bbb。
5.Copy  源文件全名
  该格式把源文件全名所指定的一个或多个文件拷贝到当前目录里来,保持文
件名不变。
6.Copy  源路径
  该格式把源路径所指定的那个目录里的所有文件拷贝到当前目录里来,保持
文件名不变。
7.Copy  文件全名1+文件全名2+文件全名3+...+文件全名n  目标文件全名(
不带通配符)
  该格式的功能是把文件全名1+文件全名2+文件全名3+...+文件全名n所指定的
n个文件合并成一个文件,放到目标文件全名所指定的目录里,新的文件名是目标
文件全名所指定的那个文件名。
  Copy命令主要就这七种格式。它也有很多选项,不过对一般使用者来说用不
上,所以就不提了。感兴趣者可以用copy /?来查看。
  当用copy命令把一个或一批文件拷贝成另外的文件后,原来的那一个或一批文
件还在,不会丢失。
  一个目录里不能出现同名文件。但是用copy命令任何一种格式拷贝文件时,
很有可能会在目标目录里产生同名文件,这种情况DOS怎么处理?这时,copy命令
会告诉你,出现了同名文件,并提供给你几种选择:1.用新拷贝过来的文件代替
原有文件,2.保留原有文件,新的和原有文件同名的文件将不被拷贝过来。3.所
有同名的文件都用新文件代替。详细的提示信息和相应的操作如下所述:
  DOS的提示:
    Overwrite "同名的文件" (Yes\No\All)?
  意思是你要覆盖这个文件吗?你可以分别键入y,n,a代表选择了Yes,No,All。
如果键入了y,意思是“是的,我要用新文件来代替这个老文件”。如果选择了n
,意思是“不,我不想用新文件来代替这个老文件”。那么老文件将保留,新文
件将不被拷贝过来。注意前两个选择都只针对现在这个同名文件而言,接下来又
有同名文件的话,DOS还会再次询问。如果键入了a,意思是“是的,我要用新文
件来代替老文件,接下来再出现同名文件的话,我也是这个意思”。那么接下来
再出现同名文件的话,DOS就不会再提示了。当然,这个选择只是针对这一次cop
y操作而言。
  如果你指定的源文件不存在的话,DOS会提示:
    File not found--<文件名>
       0 file(s) copied
  如果你指定的源目录或目标目录不存在的话,DOS会提示:
    Invalid directory!

五. Xcopy
  这个命令也是文件拷贝命令。与copy的语法一样,最好用的一点是它有一个
选项“/s”.
想一想copy命令,如果我们要把c:\ddd目录里的所有内容包括文件和子目录拷贝
到另外的地方,我们得一个目录一个目录地分别拷贝。但是如果用xcopy的话,只
须在命令后面加个“/s”,该命令就会把源目录里所有的内容,包括源目录里一
切深度的子目录结构全部复制到目标目录里,最后的结果是目标目录里也有了和
源目录里一样的自目录结构。

六. Diskcopy
  这个命令也是文件拷贝命令,专门用来将一张软盘上的所有内容完整地复制
到另一张软盘上。所以你得先准备一张源盘,就是你准备复制的那张盘。然后还
要有一张目标盘,用来把源盘上的内容复制到它上面。目标盘可以是新盘,也可
以是用过的盘。该命令的常用格式:
    diskcopy a: a:
  该命令首先提示你把源盘插入a驱动器。按照提示插好源盘后,按回车键,电
脑开始读源盘盘上的内容,读完后提示你将目标盘插入a驱动器。照提示做好后按
回车键,电脑开始往目标盘上写入从源盘读来的内容。写完后DOS会提示你写完了
,并问你是否要把源盘的内容写到另外一张目标盘上。如果你回答了y,那么就按
照接下来的提示往a驱动器里插入另外的目标盘,回车。如此循环往复,一张源盘
可以赋值很多张目标盘。如果你回答了n,那么diskcopy的执行就结束了。结果是
你的目标盘上的内容和源盘一模一样。

七. Move
  该命令的语法:
1.Move 文件全名  路径
  这个格式把文件全名所指定的文件先复制到目标路径里,然后再把原来那个
文件删除。移动和拷贝的区别就在这里,拷贝会保留原来的东西,移动却不保留

2.Move  路径1  路径2
  这个格式里,路径1叫源路径,路径2叫目标路径。该命令用来把源路径本身
及其里面的所有文件和一切嵌套深度的子目录里的内容全部移动到目标路径里,
而且完全复制源路径的目录结构。所谓移动,就是说源路径本身及其里面的内容
在move执行完后就被删除了。由于  该命令不保留原来的东西,所以使用时要
特别小心。
八. Find
  这个命令用来查找某个或某些文件里有没有指定的字符串。它的语法:
find 双引号括起来的字符串  文件全名1 文件全名1...文件全名n
  该命令在指定的n个文件里查找字符串,找到了会列出相应的文件名。它有几
个选项,其中一个是/I,这个选项使find在查找时忽略英文字母的大小写。

九. Ren
  这是给文件名和目录改名的命令。格式很简单:
ren 老名字  新名字
  当然,新名字不能和同一目录下已有的名字重复。

十. Format
  这是用来格式化磁盘的命令。它的格式:
format 盘符
  一个新的磁盘,无论是软盘还是硬盘,刚开始使用时都要格式化,作用是清
空磁盘,在磁盘上用dos可以识别的方式重新划分扇区,写入操作系统等。
  该命令有几个选项,其中一个是/s,意思是格式化完成后把操作系统写入磁
盘,就是俗称的制作启动盘。
  格式化a盘:先将软盘插入a驱动器,注意a盘的写保护要关闭(写保护将在下
面解释),然后输入命令format a: <回车>。如果要把软盘制作成启动盘的话,
则输入命令format a: /s <回车>。
  格式化c盘:通常c盘都应该是启动盘,所以应该输入命令format a: /s <
回车>。切记切记,在你不明白你在干什么的情况下,千万不要去格式化c盘。

十一. Attrib
  存在磁盘上的文件和目录都有属性:隐含,只读,系统等等。我们讲讲隐含
和只读。一个文件如果是隐含的,那么用上面讲的dir的各种格式都将列不出这个
文件。如果一个文件是只读的,那么你将不能修改和删除这个文件。对有些很重
要的文件,我们可以把它设置成隐含和只读属性。
  小技巧:在dir命令后面加上选项/ah即可列出隐含属性的文件。
该命令的使用方法:
1. Attrib +r 文件全名
  该命令把文件全名所指定的文件加上只读属性。
2. Attrib +h 文件全名
  该命令把文件全名所指定的文件加上隐含属性。
3. Attrib +r +h 文件全名
  该命令把文件全名所指定的文件加上隐含和只读属性。
4. Attrib -r  文件全名
  该命令把文件全名所指定的文件上的只读属性消除。
5. Attrib -h  文件全名
  该命令把文件全名所指定的文件上的隐含属性消除。
6. Attrib -r -h 文件全名
  该命令把文件全名所指定的文件上的隐含和只读属性都消除。
十二. Del
  这个命令用来删除文件。格式:
del 文件全名
  该命令把文件全名所指定的一个或一批文件全部删除。当文件名是*.*时,意
思是删除指定路径下的所有文件,这时Dos会让你确认一下,是否真的要删除所有
文件。如果你真的要删除的话,输入y回车即可。
  该命令不会删除目录。
  这是个危险的命令,使用之前一定要考虑好了。例子:
1. del myfile.*
  这个格式删除当前目录下主名是myfile,扩展名任意的文件。
2. Del \aaa\*.exe
  这个命令删除当前盘的根目录里的aaa子目录中的扩展名为exe的所有文件。

3. Del aaa\*.*
  这个命令删除当前目录里的aaa子目录内的所有文件。
4. Del *.*
  这个命令删除当前目录里的所有文件。
十三. Rd
  该命令删除一个空目录。

  有关DOS操作的一些基本概念上面就讲完了,现在看看DOS系统由那些文件构
成。
列出c盘根目录下的文件,我们总会发现一个文件:command.com。这是一个程序
,是dos的命令解释器。前面说过,当dos启动好后,出现提示符,光标在提示符
旁边闪动,等待你输入命令,其实就是这个命令解释器在等待你输入命令。上面
提到的dos命令,例如dir ,copy,del ,ren,rd,md等都是由这个程序来识别并执行
的。Dos的命令分为内部命令和外部命令。能够由命令解释器解释并执行的命令叫
做内部命令,否则就叫外部命令。对于外部命令,命令解释器将调用另外的有关
程序来执行。Format,xcopy,diskcopy,attrib等都是外部命令。
  Command.com是dos中一个不可缺少的文件。
  在c盘根目录中键入dir/ah回车,我们会发现另外两个文件:io.sys和msdos
.sys。这是dos的两个重要文件。Msdos.sys是dos在启动过程中所要执行的一个完
成初始化工作的程序,是必不可少的。Io.sys是一些完成某些特定功能的重要程
序的集合,这些程序叫做dos的中断子程序。无论是程序员在dos下开发的程序还
是dos自己的内部命令和外部命令,都会用到这些中断子程序。所以这个文件也是
不能缺少的。
  C盘根目录中通常会有一个目录,名字是dos。里面主要是dos的外部命令程序
。例如,format命令就是由该目录里的format.exe来执行的。这个目录里的文件
可以是完整的,也可以不完整,甚至可以没有,这全看你的需要。一个最小的基
本可以用的dos系统只须包含三个文件就可以了:command.com,msdos.sys,io.
sys。当然,这个目录里的文件如果完整的话,用起来会更方便,用处也更大。

  

阅读(3011) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~