★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
DOS和Windows最大的不同在于DOS命令方式操作,所以使用者需要记住大量命令及其格式使用方法,DOS命令分为内部命令和外部命令,内部命令是随每次启动的COMMAND.COM装入并常驻内存,而外部命令是一条单独的可执行文件。在操作时要记住的是,内部命令在任何时候都可以使用,而外部命令需要保证命令文件在当前的目录中,或在Autoexec.bat文件已经被加载了路径。
要想操作使用DOS,知道一些常用命令是非常重要的。以下是一些命令的用法。
文件名是由文件路径和文件名称合起来的,如C:\DOS\COMMAND.COM。
DIR 显示文件和文件夹(目录)。
用法:DIR [文件名] [选项]
它有很多选项,如/A表示显示所有文件(即包括带隐含和系统属性的文件),/S表示也显示子文件夹中的文件,/P表示分屏显示,/B表示只显示文件名,等等。
如 DIR A*.EXE /A /P
此命令分屏显示当前文件夹下所有以A开头后缀为EXE的文件(夹)。
CD 或 CHDIR 改变当前文件夹。
用法:CD [文件夹名]
若无文件夹名则显示当前路径。
MD 或 MKDIR 建立文件夹。
用法:MD 文件夹名
RD 或 RMDIR 删除文件夹。
用法:RD 文件夹名
注意:此文件夹必须是空的。
DEL 或 ERASE 删除文件。
用法:DEL/ERASE 文件名
COPY 拷贝文件。
用法: COPY 文件名1 [文件名2] [选项]
如 COPY /B A+B C
此命令将两个二进制文件A和B合为一个文件C。
TYPE 显示文件内容。
用法:TYPE 文件名
REN 或 RENAME 改变文件名和文件夹(目录)名。
用法:REN 文件(夹)名1 文件(夹)名2
EDIT 编辑文件,在MS-DOS 7.x中还可以编辑二进制文件和多个文件。
用法:EDIT [文件名] [选项]
如 EDIT /70 C:\COMMAND.COM
此命令以二进制方式编辑C:\COMMAND.COM文件。
FORMAT 格式化磁盘。
用法:FORMAT 驱动器 [选项]
它的选项很多,如/Q是快速格式化,/U表示无条件格式化(即无法使用UNFORMAT等命令恢复),/V指定磁盘的卷标名,等等。它还有许多未公开参数。
MEM 显示内存状态。
用法:MEM [选项]
它的选项也有不少,如/C可列出所有程序的内存占用,/D是显示驻留内存的程序及设备驱动程序的状态等详细信息,/F显示空闲的内存总量,/M显示内存中的模块信息,/P则是分屏显示。还有隐藏的/A选项,可以显示HMA信息。
MOVE 移动文件或文件夹,还可以更改文件或文件夹的名称。
用法:MOVE 文件[夹]1 文件[夹]2
如 MOVE C:\*.EXE D:
此命令 可以将C盘根文件夹下所有扩展名为EXE的文件移到D盘上。
XCOPY 复制文件或文件夹。
用法:XCOPY 文件[夹]名1 [文件[夹]名2]
[选项]
它的选项非常多,如/S可拷贝整个文件夹(包括子文件夹)中的文件,/E指定包括空文件夹,/V表示复制完后检验复制出的文件的正确性,/Y表示确认,等等。
CLS 清除屏幕。
用法:CLS
SYS 传导系统,即将系统文件(如IO.SYS等)从一处传输到指定的驱动器中。
用法:SYS 文件夹名 [驱动器]
如 SYS C:\DOS A:
此命令即可将位于C:\DOS文件夹下的系统文件传输到A盘中。
DATE 显示或设置日期。
用法:DATE [日期]
TIME 显示或设置时间。
用法:TIME [时间]
DOS还自带一些其它的命令,如SORT(排序),FIND(寻字符)等
6)SCANDISK(Scandisk.EXE)--磁盘扫描程序
这个命令在实际的操作中有很大的用处,它能对磁盘进行扫描并修复,能够解决大部分的磁盘文件损坏问题。
格式为"SCANDISK [盘符:] [参数]"下面是它的几个参数:
/fragment [驱动器名:\路径\文件名]:使用这个参数可以显示文件是否包含有间断的块,我们可以通过运行磁盘整理程序来解决这个问题;
/all:检查并修复所有的本地驱动器;
/autofix:自动修复错误,即在修复时不会出现提示;
/checkonly:仅仅检查磁盘,并不修复错误;
/custom:根据Scandisk.ini文件的内容来运行Scandisk,Scandisk.ini是一个文本文件,它包含了对Scandisk
程序的设置,其中的[custom]块是在加上"/custom"参数后才执行的,用户可以根据自己的不同情况来进行不同的设置;
/nosave:在检查出有丢失簇后直接删除,并不转化为文件;
/nosummary:不显示检查概要,完成检查后将直接退出程序;
/surface:在完成初步检查后进行磁盘表面扫描;
/mono:以单形式运行Scandisk。
我们可以根据不同的情况来加上不同的参数。我们可以执行"scandisk /all /checkonly /nosave /nosummary"来完成对磁盘的检查并且自动退出,另外还可以编辑scandisk.ini文件中设置,再运行"sc
andisk /custom"。如果被损坏的文件比较多,我们可用"/autofix"来进行自动修复,不然会忙死你的。
7)CHKDSK(Chkdsk.EXE)--磁盘检查命令
它会检查磁盘,并会显示一个磁盘状态报告。格式为"CHKDSK [盘符:] [参数]",最常用的参数是"/F",可以对文件错误进行修复。
8)MOVE(Move.EXE)--文件移动命令
使用它可以对文件进行移动。格式为"MOVE [源文件] [目的路径]"。同时也可以使用通配符。
9)DELTREE(Deltree.EXE)--删除命令
这可是DEL命令的超级加强版,它不仅可以删除文件,并且会将指定目录和其下的所有文件和子目录一并删掉。使用它,我们可以很
方便的对目录进行彻底 的删除。格式"DELTREE [文件/路径] [参数]",参数有一个"/Y",使用时系统会对每个文件进行询问,回答"Y"后才删除。
10)FDISK(Fdisk.EXE)--分区命令
我们可以使用它对硬盘进行分区操作,我在下一部分会进行具体讲解
COPY命令
功能:复制文件
格式:COPY [源目录或文件] [目的目录或文件],例如,我们要复制C盘根目录下的Sn.txt到D盘根目录下,格式为:COPY C:\sn.txt    D:\",XCOPY命令是与COPY有点类似,但Xcopy不仅可以复制文件,还可以同时复制一个目录及其子目录下的所有文件。Xcopy与Copy的格式相同,只不过要在后面加上一个/S的参数。
注意:使用该命令进行文件拷贝时,目的目录一定要存在
Del命令
功能:删除文件
格式:DEL [盘符][路径][文件名] [参数],例如我们要删除D盘System目录下的所有文件,格式为:Del D:\system\*.*。(注意:在DOS中,*.*代表所有的文件)
与Del命令功能类似的还有Deltree命令,格式相同,功能是不但可以删除文件,还可以删除目录及目录下的子目录。
问:WIN98下可以使用REGEDIT方便的管理注册表,但是如果无法启动WIN98,请问应该如何在DOS下导出导入WIN98的注册表文件呢?
  答:可以在DOS下使用REGEDIT命令,导出注册表的命令格式是:
  Regedit /L:system /R:user / Regpath
  大多数情况,我们只是需要导出默认目录下的所有注册表项目,命令格式:Regedit /
  将指定的注册表文件导入注册表中,的命令格式:
  Regedit /L:system /R:
  导入注册表仅仅需要指定被导入的.reg文件的路径即可,举例说明:
  将上中的内容导入到C:\Windows\System.dat和C:\Windows\Profiles\User.dat中,命令如下:Regedit /L:C:\Windows\ /R:C:\Windows\Profile\ 。(CE问答)
DOS下对注册表的编程
  在DOS方式下也能对注册表进行编程?是的。当您的Windows95/98因注册表问题而无法启动到图形界面时,您此时只有在DOS下对注册表进行手术了。因为注册表编辑器其实是一个双栖型的程序,既可在DOS下运行,也可在Windows95/98下运行。许多用户可能已经知道在Windows下使用Regedit的方法,那么,要掌握DOS方式下对注册表的编程,首先要了解在DOS下如何使用注册表编辑器。
  在DOS提示符下键入Regedit命令,将出现一个帮助屏幕。此屏幕给出了其命令行参数及其使用方法。
  语法: Regedit [/L:system] [/R:user] filename1
    Regedit [/L:system] [/R:user] /C filename2
    Regedit [/L:system] [/R:user] /E filename3 [regpath]
  其中:
    /L:system 指定system.
dat文件的存放位置。
  /R:user 指定user.dat文件的存放位置。
  filename1 指定引入注册表数据库的文件名。
  /C filename2 指定形成注册表数据库的文件名。
  /E filename3 指定导出注册表文件的文件名。
  regpath 指定导出注册表文件的开始关键字(缺省为全部关键字)
  现举几个例子说明在DOS下的使用方法。
  【例1】 将系统注册表数据库registry导出到文件中。
  regedit /
  【例2】 形成系统注册表数据库registry(全部)中。
  regedit /
  【例3】 将reg.dat引入系统注册表数据库中(部分)。
  regedit reg.dat
  【例4】 将CJH开始的关键字导出注册表数据库,并命名为。 
    regedit / cjh
    【例5】 指定system/dat存放在D:PWIN中和user.dat存放在E:PWIN中,将reg.dat数据文件形成一个新的注册表数据库registry。
  regedit /L:D:PWIN /R:E:PWIN /C reg.dat
  有了以上这些知识,结合在《对注册表进行编程的“捷径”》里讲过的关于导入或导出的注册表文件(*.REG),我们就可以在DOS方式下对注册表进行编程了。
  我们还是以更改“*.txt”文件的默认打开方式——“记事本”为“写字板”为例。首先在MS-DOS提示符下导出“HKEY_CLASSES_ROOT xtfile”子键这一分支,即执行命令:
  regedit / HKEY_CLASSES_ROOT xtfile
    然后用DOS下的EDIT编辑器打开文件进行编辑:将其中所有的“C:\WINDOWS\NOTEPAD.EXE”全部改成“C:\WINDOWS\WRITE.EXE”,存盘退出EDIT,再在命令行下执行命令:
 
  便大功告成了。
    当然,严格来说,这并不是编程。如果一定要编程实现的话,我们可以将以上过程写成一批处理文件chang.bat:
  @echo off
  path=c:windows;c:windowscommand;c:dos
  cls
  echo 正在导出注册表……
  regedit / HKEY_CLASSES_ROOT xtfile
  echo.
  echo 注册表导出完毕!按任一键开始编辑注册表……
  echo.
  pause
 
  echo 正在将修改后的注册表导入……
 
  echo 恭喜您!在MS-DOS方式下成功修改了注册表!
  pause
  cls
  @echo on
  充分发挥EDIT编辑器的强大功能,我们可以在遵循导出的注册表文件的格式的前提下,对注册表进行随心所欲的修改、删除或者增加任一子键。如果觉得这还不够程序化,您可以发挥DOS环境下各种程序设计语言的优势,加上交互性的界面,将这一过程真正的程序化,应该丝毫不亚于Windows状态下的利用API函数做出来的效果。有兴趣的朋友可
以试一试。
DOS下维护注册表的高级技巧(Z)
现在随着电脑应用知识的普及,我想,很多朋友对WINDOWS注册表的修改已经有不少经验和心得。在图形界面下对注册表的维护和修改,就不必再提了,但有时候,我们可能会遇到更辣手的事情,如由于人为错误操作或者恶性病毒感染而使系统切底崩溃,不能进入WINDOWS图形界面时,我们对此是否只有重装这种方法呢?本文将就在DOS下面尽量挽救系统这方面作出阐述。
一、使用scanreg/restore
我想这种方法大家也比较熟悉了,只要在DOS界面下输入该命令,就可以在最近的5个注册表备份里恢复,如果幸运的话,系统就可以马上恢复。但,事实上,用这种方法有个致命的缺陷就是你只有最近5天的注册表备份可以选择。因为控制着自动备份的只会在每天第一次启动电脑时备份,
如果哪天你安装的程序或者对注册表的修改比较多,那么你的努力就大多白费了。这种方法就正如是眉毛胡子一起抓,正确和错误的都一起改掉,是否能为恢复系统帮上忙,总有一种听天由命的感觉。所以,笔者鼓励大家使用第二种方法。
二、使用DOS界面的
如果把scanreg/restore比作是一刀切的话,这种方法更像是一次高明的外科手术,只一矢中的地针对病,把错误修复而完全不影响注册表的其他健康部分。这样,我们就能在最大限度上保留我们的工作成果了。使用对注册表实行局部修改的思路是:首先,把注册表里有嫌疑的分支导出;然后,使用edit对它进行分析和修改;最后,把健康的分支重新导入注册表里。好了,我们来看看整个过程的具体操作。
1 导出注册表分支
在DOS下导出注册表分支的命令格式是:Regedit[/L:system] [/R:user] /E filename [regpath1]。/L:system是指定system.dat的路径,/R:user是指定user.dat的路径,如果不说明,系统就会在默认的路径下;/E:是导出注册表分支的文件名,regpath1是要导出的注册表分支。比如,我们要导出默认注册表关于控制系统启动的分支到里,命令如下:regedit / HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run。
2 对注册表进行分析、修改
在DOS下面只要运行edit就能对*.reg文件进行编辑了,因为我们导出的注册表实际上就是文本文件。不过,要正确出引起错误的地方并修改,需要我们平时对注册表积累的经验。下面,我们看一下它的基本结构,以使我们在对它的修改时可以有的放矢。
我们知道,注册表里面有6个主分支,其中容易引起致命错误而使WINDOWS不能正常启动的分支有:   [HKEY_LOCAL_MACHINE],记录着本地机器的硬件
配置以及安装的相应软件,特别是[HKEY-LOCAL-MACHINE\Enum\PCI]这个分支下面的主键值,一旦出错,WINDOWS往往不能启动。如[HKEY-LOCAL-MACHINE\Enum\PCI\VEN_8086&DEV-7111&SUBSYS_00000000&REV-01\BUS_00&DEV_07&FUNC-01]记录的是硬盘控制器的详细信息,下面的Logconfig记录着它的各种参数;[HKEY_LOCAL-MACHINE\Enum\PCI\VEN-1002&DEV-4C42&SUBSYS_4C421071&REV-DC0800]记录的则是显示卡的重要资料和参数,一旦这里出错,往往会导致WINDOWS在启动时黑屏,然后死掉。
另外还有[HKEY-LOCAL-M ACHINE\Software\Microsoft\Windows\CurrentVersion]里记录着WINDOWS当前版本的信息以及启动时执行的程序等,这是病毒最爱攻击和修改的地方。
至于还有[HKEY-CLASS-ROOT]是记录文件种类及其关联信息的,[HKEY-CURRENT-USER]里记录着当前用户的各种信息,包括登陆的密码和各方面的设置等,这些一般不会引起WINDOWS的致命错误,这里也不再详细分析了。
当我们对这些键值分析和修改时,如果碰到什么不清处的地方,可以通过第1点的导出注册表方法,把一些备份注册表的相应分支导出,进行比较。WINDOWS的注册表备份都放在C:\windows\sysbackup里面,如我们要导出第一个注册表备份的[HKEY_LOCAL_MACHINE]分支,那么我们可以先进入该目录,然后键入命令:extract /e rb000.cab *.*,先把system.dat和user.dat解压出来,再键入命令:regedit /L:system.dat /R:user.dat / HKEY-LOCAL-MACHINE。 笔者在这里提醒一下,这是一个很好的解决问题的方法,再用上一些文件比较软件可以很快的出错误的,请诸位慢慢体会。
3 把修改好的注册表分支重新导入
命令的格式为:regedit /L:system /R: 。我们一般都要修改默认的注册表文件,所以在实际使用中只需键入:就行了。   
格式化命令format参数好了,讲了这么久,我们看看一个具体的案例。
学院机房里的一台机器在重新启动后,无论用正常模式或者安全模式都不能进入WINDOWS界面,表现为启动过程中硬盘突然不读。用SCANDISK检查过硬盘,并没有发现问题。在启动过程中选择生成BOOTLOG.TXT文件,发现启动到硬盘控制器后就断掉了。本来想用scanreg/restore恢复备份的注册表,可是该机器为了加快启动,并没有自动备份。于是,用regedit把[HKEY-LOCAL-MACHINE\Enum\PCI]分支导出,键入:regedit / HKEY-LOCAL-MACHINE\Enum\PCI;接着用EDIT查看关于硬盘控制器的部分,发现有"ChannelOptions"=hex:00,问题到这里终于发现了,原来是有人把IDE控制器设置成不使用,造成在加载硬盘控制器后,系统不能访问硬盘,所以把它改为:hex:02;再键入命令:,把修改后的信息导入