(1)子目录在删除前必须是空的,也就是说需要先进入该子目录,使用DEL(删除文件的命令)将其子目录下的文件删空,然后再退回到上一级目录,用RD命令删除该了目录本身;
文件操作类命令
(一) COPY文件复制命令
1.功能:拷贝一个或多个文件到指定盘上。
2.类型:内部命令
3.格式:COPY [源盘][路径]〈源文件名〉[目标盘][路径][目标文件名]
4.使用说明:
(1)COPY是文件对文件的方式复制数据,复制前目标盘必须已经格式化;
(2)复制过程中,目标盘上相同文件名称的旧文件会被源文件取代;
(3)复制文件时,必须先确定目标般有足够的空间,否则会出现;insufficient的错误信息,提示磁盘空间不够;
(4)文件名中允许使用通配举“*”“?”,可同时复制多个文件;
(5)COPY命令中源文件名必须指出,不可以省略。
(6)复制时,目标文件名可以与源文件名相同,称作“同名拷贝”此时目标文件名可以省略;
(7)复制时,目标文件名也可以与源文件名不相同,称作“异名拷贝”,此时,目标文件名不能省略;
(8)复制时,还可以将几个文件合并为一个文件,称为“合并拷贝”,格式如下:COPY;[源盘][路径]〈源文件名1〉〈源文件名2〉…[目标盘][路径]〈目标文件名〉;
(9)利用COPY命令,还可以从键盘上输入数据建立文件,格式如下:COPY CON [盘符:][路径]〈文件名〉;
(10)注意:COPY命令的使用格式,源文件名与目标文件名之间必须有空格!
(二)XCOPY――目录复制命令
1.功能:复制指定的目录和目录下的所有文件连同目录结构。
2.类型:外部命令
3.格式:XCOPY [源盘:]〈源路径名〉[目标盘符:][目标路径名][/S][/V][/E]
4.使用说明:
(1)XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝隐藏文件和系统文件;
(2)使用时源盘符、源目标路径名、源文件名至少指定一个;
(3)选用/S时对源目录下及其子目录下的所有文件进行COPY。除非指定/E参数,否则/S不会拷贝空目录,若不指定/S参数,则XCOPY只拷贝源目录本身的文件,而不涉及其下的子目录;
(4)选用/V参数时,对的拷贝的扇区都进行较验,但速度会降低。
(三)TYPE――显示文件内容命令
1.功能:显示ASCII码文件的内容。
2.类型:内部命令。
3.格式:TYPE[盘符:][路径]〈文件名〉
4.使用说明:
(1)显示由ASCII码组成的文本文件,对。EXE.COM等为扩展名的文件,其显示的内容是无法阅读的,没有实际意义2;
(2)该命令一次只可以显示一个文件的内容,不能使用通配符;
(3)如果文件有扩展名,则必须将扩展名写上;
(4)当文件较长,一屏显示不下时,可以按以下格式显示;TYPE[盘符:][路径]〈文件名〉|MORE,MORE为分屏显示命令,使用些参数后当满屏时会暂停,按任意键会继续显示。
(5)若需将文件内容打印出来,可用如下格式:
TYPE[盘符:][路径]〈文件名〉,>PRN
此时,打印机应处于联机状态。
(四) REN――文件改名命令
1.功能:更改文件名称
2.类型:内部命令
3.格式:REN[盘符:][路径]〈旧文件名〉〈新文件名〉
4.使用说明:
(1)新文件名前不可以加上盘符和路径,因为该命令只能对同一盘上的文件更换文件名;
(2)允许使用通配符更改一组文件名或扩展名。
(五)FC――文件比较命令
1.功能:比较文件的异同,并列出差异处。
2.类型:外部命令
3.格式:FC[盘符:][路径名]〈文件名〉[盘符:][路径名][文件名][/A][/B][/C][/N]
4.使用说明:
(1)选用/A参数,为ASCII码比较模式;
(2)选用/B参数,为二进制比较模式;
(3)选用/C参数,将大小写字符看成是相同的字符。
(4)选用/N参数,在ASCII码比较方式下,显示相异处的行号。
(六)ATTRIB――修改文件属性命令
1.功能:修改指定文件的属性。(文件属性参见2.5.4(二)文件属性一节)
2.类型:外部命令。
3.格式:ATTRIB[文件名][R][――R][A][――A][H][――H][S][――S][/S]
4.使用说明:
(1)选用R参数,将指定文件设为只读属性,使得该文件只能读取,无法写入数据或删除;选用――R参数,去除只读属性;
(2)选用A参数,将文件设置为档案属性;选用――A参数,去除档案属性;
(3)选用H参数,将文件调协为隐含属性;选用――H参数,去隐含属性;
(4)选用S参数,将文件设置为系统属性;选用――S参数,去除系统属性;
(5)选用/S参数,对当前目录下的所有子目录及作设置。
七) DEL――删除文件命令
1.功能:删除指定的文件。
2.类型:内部命令
3.格式:DEL[盘符:][路径]〈文件名〉[/P]
4.使用说明:
(1)选用/P参数,系统在删除前询问是否真要删除该文件,若不使用这个参数,则自动删除;
(2)该命令不能删除属性为隐含或只读的文件;
(3)在文件名称中可以使用通配符;
(4)若要删除磁盘上的所有文件(DEL*・*或DEL・),则会提示:(Arey ou
sure?)(你确定吗?)若回答Y,则进行删除,回答N,则取消此次删除作业。
(八) UNDELETE――恢复删除命令
1.功能:恢复被误删除命令
2.类型:外部命令。
3.格式:UNDELETE[盘符:][路径名]〈文件名〉[/DOS]/LIST][/ALL]
4.使用说明:使用UNDELETE可以使用“*”和“?”通配符。
(1)选用/DOS参数根据目录里残留的记录来恢复文件。由于文件被删除时,目录所记载斩文件名第一个字符会被改为E5,DOS即依据文件开头的E5和其后续的字符来找到欲恢复的文件,所以,UNDELETE会要求用户输入一个字符,以便将文件名字补齐。但此字符不必和原来的一样,只需符合DOS的文件名规则即可。
(2)选用/LIST只“列出”符合指定条件的文件而不做恢复,所以对磁盘内容完全不会有影响。
(3)选用/ALL自动将可完全恢复的文件完全恢复,而不一一地询问用户,使用此参数时,若UNDELTE利用目录里残留的记录来将文件恢复,则会自动选一个字符将文件名补齐,并且使其不与现存文件名相同,选用字符的优选顺序为:#%――0000123456789A~Z。
UNDELETE还具有建立文件的防护措施的功能,已超出本课程授课范围,请读者在使用些功能时查阅有关DOS手册。
七、其它命令
(一)CLS――清屏幕命令
1功能:清除屏幕上的所有显示,光标置于屏幕左上角。
2类型:内部命令
3格式:CLS
(二) VER查看系统版本号命令
1功能:显示当前系统版本号
2类型:内部命令
3格式:VER
(三) DATA日期设置命令
1功能:设置或显示系统日期。
2类型:内部命令
3格式:DATE[mm――dd――yy]
4使用说明:
(1)省略[mm――dd――yy]显示系统日期并提示输入新的日期,不修改则可直接按回车键,[mm――dd――yy]为“月月――日日――年年”格式;
(2)当机器开始启动时,有自动处理文件(AUTOEXEC.BAT)被执行,则系统不提示输入系统日期。否则,提示输入新日期和时间。
(四) TIME系统时钟设置命令
1功能:设置或显示系统时期。
2类型:内部命令
3格式:TIME[hh:mm:ss:xx]
4使用说明:
(1)省略[hh:mm:ss:xx],显示系统时间并提示输入新的时间,不修改则可直接按回车键,[hh:mm:ss:xx]为“小时:分钟:秒:百分之几秒”格式;
(2)当机器开始启动时,有自动处理文件(AUTOEXEC.BAT)被执行,则系统不提示输入系统日期。否则,提示输入新日期和时间。
(五)MEM查看当前内存状况命令
1功能:显示当前内存使用的情况
2类型:外部命令
3格式:MEM[/C][/F][/M][/P]
4使用说明:
(1)选用/C参数列出装入常规内存和CMB的各文件的长度,同时也显示内存空间的使用状况和最大的可用空间;
(2)选用/F参数分别列出当前常规内存剩余的字节大小和UMB可用的区域及大小;
(3)选用/M参数显示该模块使用内存地地址、大小及模块性质;
(4)选用/P参数指定当输出超过一屏时,暂停供用户查看。
(六) MSD显示系统信息命令
1功能:显示系统的硬件和操作系统的状况。
2类型:外部命令
3格式:MSD[/I][/B][/S]
4使用说明:
(1)选用/I参数时,不检测硬件;
(2)选用/B参数时,以黑白方式启动MSD;
(3)选用/S参数时,显示出简明的系统报告。
DOS批处理文件
DOS下的可执行文件有三种,分别是EXE,COM和BAT。其中,EXE和COM文件都是二进制形式的,只有BAT文件是文本形式的,可以直接阅读。因此,BAT文件和以上二进制可执行文件相比,内容要简单的多。这些文件内包含着DOS命令的集合,通常叫作批处理文件。批处理文件的组成虽然比较简单,但其用处非常大,使用也比较广泛。比如每次都执行一些相同的命令,您一定会觉得非常麻烦,而放在批处理文件中执行的话则轻松得多。AUTOEXEC.BAT就是一个特殊的批处理文件,它在DOS的启动时自动运行,在系统的配置中发挥着非常大的作用。因此,要学好DOS,就要学好批处理文件。下面介绍批处理文件的命令及其使用。
DOS自带的批处理命令:
@:将这个符号放在批文件中其它命令的前面,运行时将不显示命令本身。
如@ECHO OFF命令就在批文件首经常用到。
CALL:从一个批文件中调用另一个批文件,调用完后继续执行原来的批文件。
用法:CALL [批文件名]
注:也可以使用COMMAND /C命令完成同样的操作。
CHOICE:选择命令。这是一个DOS外部命令,但它主要用在批文件中。
CHOICE命令执行后将提示可选择的项目,这时通过一个按键来选则。
用法:CHOICE:[/C[:]按键表] [/N] [/S] [/T[:]选择值,秒数] [显示文本]
其中,/C表示可选则的按键,/N表示不要显示提示信息,/S表示大小写字符敏感方式,/T表示若在批定的时间内没有选则的话,自动执行/C中定义的某个选择值。显示文本是CHOICE命令执行时的提示信息。选择结果将用ERRORLEVEL值来表示。
ECHO:显示指定的信息。通常显示在屏幕上。
如ECHO Hello将在屏幕上显示Hello的字样。
另外,ECHO ON|OFF用来设置在批文件执行时是否显示命令本身。而ECHO OFF与@的意思一样,但它是一个单独的命令,而不能像@那样放在其它命令之前。
FOR:对于指定的文件运行相应的命令。
大家知道,DOS下许多命令支持通配符,如?和*,可以一次指定一批文件,非常方便。然而,并非所有的DOS命令都支持通配符,如TYPE(文件内容显示命令)就不支持。有了FOR命令就没有关系了,利于它可以使TYPE命令可以一次显示多个文件。
用法:FOR %变量名 IN (文件集) DO 命令 [命令参数]
注:以上是FOR命令的固定形式,IN和DO的位置必须正确,否则将提示语法错误。
如FOR %F IN (*.*) DO TYPE %F命令就可以实现TYPE命令一次显示多个文件。
注:%F是变量名,也可用%G等代替,但前后必须一致。在批文件中用%%F代替。
GOTO:转到批文件内部的某个标号下执行。
大家知道,在编程中往往需要重复或跳转到某个地方继续执行,如BASIC语言中的GOTO命令。批文件中的GOTO命令也可以完成类似的功能。
用法:GOTO [标号名]
其中,标号名是可以随意设置的,如Hello等。设置标号用“:”符号,如“:Hello”,这时用GOTO
Hello命令将转到“:Hello”所在的位置继续执行批文件。
IF:条件判断命令。这是一项很有用的批处理命令。
用法1:IF [NOT] EXIST 文件名 命令 [命令参数]
意义:如果[不]存在某个文件将执行某个命令。
用法2:IF [NOT] ERRORLEVEL 错误返回代号 命令 [命令参数]
意义:如果错误返回代号[不]大于或等于指定的代号将执行某个命令。
其中,ERRORLEVEL表示错误返回代号,很有用。对于很多DOS命令,由于执行的结果不同(如执行成功,执行失败,或被用户中断等),这些命令会返回不同的代号,以表示不同的结果。IF
ERRORLEVEL命令就根据这个不同结果而产生的不同代号来执行不同的命令,通常用在某条命令之后。如IF ERRORLEVEL 1 ECHO
OK!表示如果当前的错误返回代号大于或等于1时将在屏幕上显示“OK!”的字样。
用法3:IF [NOT] 字符串1==字符串2 命令 [命令参数]
意义:当字符串1和字符串2[不]相等的时候执行某个命令。
PAUSE:暂停批文件的执行,并显示“按任意键继续”的字样。
REM:添加注解。用于增加文件可读性,将不被执行。也可以用::来代替。
SHIFT:在批文件中改变可替换参数的位置。
可替换参数是一种特殊的参数,只能用在批文件中。这些参数是由使用者在执行批处理命令时输入的。比如,我们执行DIR /S
/W命令,其中DIR是命令名,/S和/W是它的执行参数。在批文件中,这些命令参数将被分别赋予到可替换参数中,如/S就成的%1,/W就可了%2,以至类推,而命令本身则被赋予%0中。批文件就是利用可替换参数对执行时输入的参数来进行操作的。比如现在有个批处理文件叫MYFILE.BAT,在命令行下执行MYFILE.BAT
YES,于是%0的值就是MYFILE.BAT,%1的值就是“YES”,可以在此批文件中用IF等命令判断出%1等参数的值,然后根据这些值的不同执行不同的操作,如IF
"%1"=="YES" GOTO YES。
SHIFT命令不带任何参数,执行结果是将%0的值换成原%1的值,而原%1的值变成的原%2的值,以此类推。注意它的不可逆转性。因为批处理文件执行时的运行参数可能很多,可能会超过10个,而可替换参数只能从%0到%9,若想取得%9以后的参数值,只能使用SHIFT命令。这时,整个参数列将向前推。
以上是DOS的自带批处理命令,可以看出,这些命令是非常少的,若要编写较复杂的程序,用以上的命令显然不可能实现。这时就需要其它实用的批处理工具了,著名且实用的有TESTIF,STRING,ASET,BATCHMAN,WBAT等,均可在“DOS软件分类下载”中的“脚本工具”中下载。在批处理文件中使用以上的工具可以实现非常强大的功能,甚至可以完成许多高级语言程序的功能。所以,如果您想编者按写批处理文件的话,它们是您不错的选择,不仅有详细的文档,而且还在不断发展中。
下面就要谈批处理文件的制作了。其实制作批处理文件并不难,只要掌握了方法就行了。随着您操作次数的增多,您会觉得越来越容易的。
首先使用一个文本编辑器,如DOS自带的EDIT命令或其它的编辑工具,如PEDIT等新建一个空白文件(当然,用COPY
CON命令直接创建也行),然后在其中根据您想完成的功能输入批处理命令。如果您只是想执行一些的DOS命令的集合,则按顺序在每行输入一个DOS命令就行了。但如果您是想完成一些更复杂的操作,就需要以上的批处理命令或上述的批处理工具了。
以下是我原来所编的一个从1%慢慢增加到100%的批处理小程序,大家可以用作参考,以编写自己的程序。
@echo off
break off
cls
set c=0
writext 10 1 Wait...
be delay 4
:loop
writext 10 9 %c%%%�completed.
count c
if not %c%==101 goto loop
echo.
set c=
kpush /f
break on
其中,我用到了WRITEXT,COUNT,BE和KPUSH,这些都是批处理工具。WRITEXT是ECHO的增强工具,可以自定义显示的效果。COUNT是变量的计算工具,如原来C的值为1,执行COUNT
C后C的值就为2。BE是个强大的批处理增强工具,在Norton Utilties 8.0中带有。KPUSH是键盘缓冲工具。
总之,利用批处理命令和批处理增强工具,我们可以编出许多强大的批处理文件来,大家不妨一试。许多批处理工具可以在“脚本工具”中下载。
DOS在WINDOWS下的优势
其实在DOS下的一些命令是WINDOWS下无可比拟的(太夸张了些^-^)。首先介绍几个DOS下的命令:
一、delete(DEL)。大家一定要说这不是删除命令吗?对!就是删除命令。它能删除在WINDOWS下无法删除的文件。比如:Win386.swp(虚拟内存),定期删除可减少硬盘碎片,删除后重启自动可生成Win386.swp。然而在WINDOWS下用鼠标左键单击选定,按键盘上的Delete,弹出确认框:确实要把“Win386.swp”放入回收站吗?单击确定。又弹出一错误框:无法删除WIN386:访问被拒绝,请确定磁盘未满或未被写保护,而且文件未被使用。各位读者是不是遇到这种情况?
二、doskey(锁定命令)。大家一定对FORMAT很害怕吧!病毒一侵入,它就给您FORMAT,WU、WU、WU……后悔已来不及了,只得重装系统,真麻烦!现在您不必害怕!在DOS下键入如下命令以C:doskey FORMAT=Bad Command or file name!并回车就可以了,当“病毒”或“人毒”格式化您的硬盘时,系统将会显示:“Bad command or file name!”。那么您又要问我:我自己想格式化的时候怎么办?没关系!只要键入“C:doskey FORMAT=”并回车,就可以了^-^
三、FC(它是比较两个文件差别的命令)。命令格式:fc 原文件名 目标文件名 保存结果。例:fc c:1.reg c:2.reg>c:3.txt(其中1.reg、2.reg是注册表文件,3.txt是文本文件),使用这个命令可以比较注册表,也可以其他文件(注册表:就是在开始运行并回车)。这样在安装共享软件的时候,就知道“它”往注册表中装什么了,(安装前先导出注册表,安装后再导出注册表,并用FC命令比较),这样对某些搞特殊工作的人就方便多了,只能点到为止了^-^
四、bat(批处理命令),它在WINDOWS下同样有它的功效。有一些朋友是不是在上网的时候,经常忘了开防火墙?!如果在启动WINDOWS时直接启动,浪费了系统资源,并不是每次都上网;如果忘了开防火墙,病毒、木马就乘虚而入了,作者本人也有一次教训),能不能两全齐美呢?只要当上网时防火墙自动打开(有一些软件能使两个软件捆绑在一起,只要启动一个软件,另一个软件自动启动),自力更生、艰苦创业是中华民族的美德吗!以本人把天网防火墙和电子邮件捆绑一起为例,首先新建记事本(文本文件)内容如下:
start C:Progra~1skynetFirewallsnfw.exe
start C:Progra~1Outloo~1.EXEMSIMN.exe
然后另存为(菜单栏中文件另存为)电子邮件.bat(名字随便起,只要后缀是.bat就行了)然后执行一下,是不是成功了,以后收发电子邮件,只要启动这个批处理文件就可以了(也可在桌面或任务栏建立快捷方式,是不是更方便了)。这里需要指出的是:DOS下不支持长文件名,最多8个字节,所以Program Files应写成Progra~1。命令格式即为start 文件存放路径。
怎么样,DOS还是宝刀未老吧!!!
DOS中的小技巧DOS中的小技巧
经常使用DOS,笔者总结了几条小技巧,特拿出来怡笑大方。
1. 批处理中用set设置dir的显示方式
在批处理命令中加上c: setdircmd =w/p/a,(三个参数可单独使用)这样只需键入c:
dir,就可达到分屏五行显示,同时显示隐含目录与文件的效果。若想取消此显示方式,只需键入c: setdircmd
=<--(<�D�D代表回车)同理使用set还可以使其他命令简化。
2. DOS下edit的使用技巧
使用过wps的人都觉得其中“定义块”的功能很好用,其实dos下的edit也能实现定义块,并且还有快捷键可使用。先按住shift键,再用→/←方向键控制,shift
+home定义到行首,shift +end定义行行尾,shift +↑/↓定义上一行和下一行,shift +home
+ctrl定义到文件头……(定义好的块会形成亮带)要想复制块,则首先要定义好块,然后按alt
+e选择edit用↑/↓调到copy项,回车,将定义好的被复制项放到剪贴板中。再将光标移动至目标的位置,按alt
+e,选paste(粘贴),回车,刚刚被放至剪贴板的块被复制到当前光标所在处。移动块也可照此方法。
3. 用Type命令拷贝加密盘
用DOS下的Type命令可以拷贝某些用copy及pctools无法复制的加密盘上的信息,方法是,先记下目标盘上所有文件的文件名的扩展名,然后在A:驱插入源盘,B:驱插入一张空盘,键入以下命令:A:
Type文件名>B:文件名将加密盘上的所有文件按此格式都Type到目标盘上,就形成一张与原加密盘一样的盘了。
4. Type的另一妙用――获得未知病毒代码
用Type可以巧妙的利用病毒多感染com和exe这一特性,获得未知病毒代码。现在C盘根目录下建立两个零字节的Vir文件,扩展名分别用com和exe,方法如下:c:
>type nul >vir.com,c:>type nul
>vir.exe,根据病毒侵入的特性,一旦染毒,扩展名为com和exe的文件的字节数便会增加。所增加的字节便是感染病毒的全部代码,从而进行有针对的杀毒措施,如将病毒代码取适当的一段拷入一些杀毒软件的virus.dat等病毒代码文件中,就可以自己实现对杀毒软件的升级,非常及时。
XP中的增强DOS命令
“廉颇老矣,尚能饭否”,这是很多人对Windows操作系统下的DOS 的一种偏见,其实DOS在系统维护工作中有着重要的作用。自从微软公司推出Windows XP操作系统后, 人们热情的投入到Win XP的怀抱中去关注它、了解它、使用它,却很少有人注意到Win XP附带的DOS操作环境,实际上Win XP已经增加了部分DOS命令的功能,所谓“老树开新花”,下面让我们一道来感受Win XP下DOS的功能变化。
◆命令:DIR,列文件、目录
增加参数:/-C
参数说明:DIR列文件、目录时显示的文件大小,其数值以千为单位进行分隔,使用此参数即“DIR/-C”将取消显示中的分隔符,以满足部分人的视觉习惯。
增加参数:/Q
参数说明:Windows是多用户操作系统,使用此参数即“DIR /Q”列文件、目录时,将显示出文件、目录的用户属性。
增加参数:/T:C、/T:A、/T:W
参数说明:使用此参数即“DIR/T:C”、“DIR/T:A”、“DIR/T:W”分别显示文件、目录的创建时间、上次访问时间和上次修改时间。
增加参数:/X
参数说明:使用此参数即“DIR/X”列文件、目录时,会对长文件名同时显示“8.3”格式的文件名。
◆命令:CD,改变目录
增加参数:/D
参数说明:此参数的作用是快速改变当前目录,比如当前目录是C:Windows,使用命令“CD/D E:Tools”可快速切换到E:Tools目录下。注:只有在Win XP的“运行”文本框中输入“CMD”得到的DOS窗口中才能使用此参数。
◆命令:MD,建立目录
功能说明:此命令并未增加参数,但是增强了功能,它可一次建立多级子目录, 例如使用命令“MD AABBCCDD”将一次性创建AA、BB、CC、DD四级子目录。而在老版本的DOS中,若不存在AA子目录,便无法直接建立AA下的BB等深层子目录。
◆命令:RD,删除目录
增加参数:/S
参数说明:使用此参数即“RD/S”用于删除目录树,即删除目录及目录下的所有子目录和文件,相当于以前版本中的DELTREE命令。
增加参数:/Q
参数说明:使用上面的/S参数删除目录树时,系统会要求用户确认是否真的要删除。若同时使用/Q参数即“RD/S /Q”,在进行删除操作时将取消确认,相当于DELTREE命令的/Y参数。
◆命令:DEL,删除文件或目录
增加参数:/F
参数说明:使用此参数即“DEL/F”可删除只读文件。
增加参数:/S、/Q
参数说明:使用此参数即“DEL/S”作用与“RD/S”完全相同,即删除目录及目录下的所有子目录和文件。同时使用参数/Q,可取消删除操作时的系统确认。
增加参数:/A
参数说明:删除指定属性或指定属性以外的文件,/AR、/AH、/AS、/AA分别表示删除只读、隐藏、系统、存档文件,/A-R、/A-H、/A-S、/A-A表示删除除只读、隐藏、系统、存档以外的文件。例如“DEL/AR *.*”表示删除当前目录下所有只读文件,“DEL/A-S *.*”表示删除当前目录下除系统文件以外的所有文件。
◆命令:ATTRIB,更改文件或目录的属性
增加参数:/D
参数说明:在Win XP中我们不能把文件或文件夹设置为系统属性,只能设为只读、隐藏或存档属性。而带参数/D使用ATTRIB命令可以对文件的所有属性进行设定,设定时必须与参数/S同时使用。例如“ATTRIB /S /D +S D:Study”,作用是将D:Study文件夹设置为系统文件夹。
◆命令:format,格式化磁盘
增加参数:/FS:filessystem
参数说明:按指定文件系统类型(FAT、FAT32、NTFS)格式化磁盘,例如“format /FS:NTFS”。
◆命令:DATE、TIME,显示系统日期和时间
增加参数:/T
参数说明:使用此参数即“DATE/T”、“TIME/T”将只显示当前日期和时间,而不必输入新日期和时间。
长用的一些DOS命令
一索引:
ATTRIB
CD
CLS
COPY
DATE
DEL
DIR
DISKCOMP
DISKCOPY
ECHO
FC
FIND
FORMAT
LABEL
MD
MOVE
PROMPT
TIME
TREE
VER
XCOPY
NETSTAT
REM
REN
VOL
TYPE
ATTRIB:显示或更改文件属性。
ATTRIB [+R│-R] [+A│-A] [+S│-S] [+H│-H] [[drive:] [path] filename] [/S] [/D]
+ 设置属性。
- 清除属性。
R 只读文件属性。
A 存档文件属性。
S 系统文件属性。
H 隐藏文件属性。
[drive:][path][filename]
指定要处理的文件属性。
/S 处理当前文件夹及其子文件夹中的匹配文件。
/D 也处理文件夹。
CD:显示当前目录名或改变当前目录。
CHDIR [/D] [drive:][path]
CHDIR [..]
CD [/D] [drive:][path]
CD [..]
.. 指定要改成父目录。
键入 CD 驱动器: 显示指定驱动器中的当前目录。
不带参数只键入 CD,则显示当前驱动器和目录。
使用 /D 命令行开关,除了改变驱动器的当前目录之外,
还可改变当前驱动器。
如果扩展命令名被启用,CHDIR 会如下改变:
当前的目录字符串会被转换成使用磁盘名上的大小写。所以,
如果磁盘上的大小写如此,CD C : TEMP 会将当前目录设为
C:Temp。
CHDIR 命令不把空格当作分隔符,因此有可能将目录名改为一个
带有空格但不带有引号的子目录名。例如:
cd winntprofilesusernameprogramsstart menu
与下列相同:
cd "winntprofilesusernameprogramsstart menu"
在扩展功能停用的情况下,您必须键入以上命令。
CLS:清除屏幕。
COPY:将一份或多份文件复制到另一个位置。
COPY [/D] [/V] [/N] [/Y │ /-Y] [/Z] [/A │ /B ] source [/A │ /B]
[+ source [/A │ /B] [+ ...]] [destination [/A │ /B]]
source 指定要复制的文件。
/A 表示一个 ASCII 文本文件。
/B 表示一个二进位文件。
/D 允许解密要创建的目标文件
destination 为新文件指定目录和/或文件名。
/V 验证新文件写入是否正确。
/N 复制带有非 8dot3 名称的文件时,
尽可能使用短文件名。
/Y 不使用确认是否要改写现有目标文件
的提示。
/-Y 使用确认是否要改写现有目标文件
的提示。
/Z 用可重新启动模式复制已联网的文件。
命令行开关 /Y 可以在 COPYCMD 环境变量中预先设定。
这可能会被命令行上的 /-Y 替代。除非 COPY
命令是在一个批文件脚本中执行的,默认值应为
在改写时进行提示。
要附加文件,请为目标指定一个文件,为源指定
数个文件(用通配符或 file1+file2+file3 格式)。
DATE:显示或设置日期。
DATE [/T │ date]
显示当前日期设置和输入新日期的提示,请键入
不带参数的 DATE。要保留现有日期,请按 ENTER。
如果命令扩展名被启用,DATE 命令会支持 /T 开关;
该开关指示命令只输出当前日期,但不提示输出新日期。
DEL:删除一个或数个文件。
DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
names 指定一个或数个文件或目录列表。通配符可被用来
删除多个文件。如果指定了一个目录,目录中的所
有文件都会被删除。
/P 删除每一个文件之前提示确认。
/F 强制删除只读文件。
/S 从所有子目录删除指定文件。
/Q 安静模式。删除全局通配符时,不要求确认。
/A 根据属性选择要删除的文件。
attributes R 只读文件 S 系统文件
H 隐藏文件 A 存档文件
- 表示“否”的前缀
如果命令扩展名被启用,DEL 和 ERASE 会如下改变:
/S 开关的显示句法会颠倒,即只显示已经
删除的文件,而不显示找不到的文件。
DIR:
DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
[drive:][path][filename]
指定要列出的驱动器、目录和/或文件。
/A 显示具有指定属性的文件。
attributes D 目录 R 只读文件
H 隐藏文件 A 准备存档的文件
S 系统文件 - 表示“否”的前缀
/B 使用空格式(没有标题信息或摘要)。
/C 在文件大小中显示千位数分隔符。这是默认值。用 /-C 来
停用分隔符显示。
/D 跟宽式相同,但文件是按栏分类列出的。
/L 用小写。
/N 新的长列表格式,其中文件名在最右边。
/O 用分类顺序列出文件。
sortorder N 按名称(字母顺序) S 按大小(从小到大)
E 按扩展名(字母顺序) D 按日期/时间(从先到后)
G 组目录优先 - 颠倒顺序的前缀
/P 在每个信息屏幕后暂停。
/Q 显示文件所有者。
/S 显示指定目录和所有子目录中的文件。
/T 控制显示或用来分类的时间字符域。
timefield C 创建时间
A 上次访问时间
W 上次写入的时间
/W 用宽列表格式。
/X 显示为非 8dot3 文件名产生的短名称。格式是 /N 的格式,
短名称插在长名称前面。如果没有短名称,在其位置则
显示空白。
/4 用四位数字显示年
可以在 DIRCMD 环境变量中预先设定开关。通过添加前缀 - (破折号)
来替代预先设定的开关。例如,/-W。
DISKCOMP:比较两张软盘的内容。
DISKCOMP [drive1: [drive2:]]
DISKCOPY:把一张软盘的内容复制到另一张。
DISKCOPY [drive1: [drive2:]] [/V]
/V 校验信息复制得是否正确。
两张软盘的类型必须相同。
您可以为 drive1 和 drive2 指定同样的驱动器。
ECHO:显示信息,或将命令回显打开或关上。
ECHO [ON │ OFF]
ECHO [message]
要显示当前回显设置,键入不带参数的 ECHO。
FC:比较两个文件或两个文件集并显示它们之间的不同
FC [/A] [/C] [/L] [/LBn] [/N] [/OFF[LINE]] [/T] [/U] [/W] [/nnnn]
[drive1:][path1]filename1 [drive2:][path2]filename2
FC /B [drive1:][path1]filename1 [drive2:][path2]filename2
/A 只显示每个不同处的第一行和最后一行。
/B 执行二进制比较。
/C 不分大小写。
/L 将文件作为 ASCII 文字比较。
/LBn 将连续不匹配的最大值设为指定
的行数。
/N 在 ASCII 比较上显示行数。
/OFF[LINE] 不要跳过带有脱机属性集的文件。
/T 不要将 tab 扩充到空格。
/U 将文件作为 UNICODE 文字文件比较。
/W 为了比较而压缩空白(tab 和空格)。
/nnnn 指定不匹配处后必须连续匹配的行数。
[drive1:][path1]filename1
指定要比较的第一个文件或第一个文件集。
[drive2:][path2]filename2
指定要比较的第二个文件或第二个文件集。
FIND:在文件中搜索字符串。
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]
/V 显示所有未包含指定字符串的行。
/C 仅显示包含字符串的行数。
/N 显示行号。
/I 搜索字符串时忽略大小写。
/OFF[LINE] 不要跳过具有脱机属性集的文件。
"string" 指定要搜索的文字串,
[drive:][path]filename
指定要搜索的文件。
如果没有指定路径,FIND 将搜索键入的或者由另一命令产生的文字。
FORMAT:格式化磁盘。
FORMAT volume [/FS:file-system] [/V:label] [/Q] [/A:size] [/C] [/X]
FORMAT volume [/V:label] [/Q] [/F:size]
FORMAT volume [/V:label] [/Q] [/T:tracks /N:sectors]
FORMAT volume [/V:label] [/Q]
FORMAT volume [/Q]
volume 指定驱动器(后面跟一个冒号)、装入点
或卷名。
/FS:filesystem 指定文件系统类型(FAT、FAT32 或 NTFS)。
/V:label 指定卷标。
/Q 执行快速格式化。
/C 仅适于 NTFS: 默认情况下,将压缩在该新建卷上
创建的文件。
/X 如果必要,先强制卸下卷。那时,该卷所有
已打开的句柄不再有效。
/A:size 替代默认配置单位大小。极力建议您在一般状况下使用
默认设置。
NTFS 支持 512、1024、2048、4096、8192、16K、32K、
64K。
FAT 支持 512、1024、2048、4096、8192、16K、32K、
64k,(128k、256k 用于大于 512 字节的扇区) 。
FAT32 支持 512、1024、2048、4096、8192、16k、32k、
64k,(128k 、256k 用于大于 512 字节的扇区)。
注意 FAT 及 FAT32 文件系统对卷上的群集数量有以下限制:
FAT: 群集数量 <= 65526
FAT32: 65526 < 群集数量 < 4177918
如果判定使用指定的群集大小无法满足以上需求,格式
化将立即停止。
NTFS 压缩不支持大于 4096 的分配单元。
/F:size 指定要格式化的软盘大小(1.44)
/T:tracks 为磁盘指定每面磁道数。
/N:sectors 指定每条磁道的扇区数。
LABEL:创建、更改或删除磁盘的卷标。
LABEL [drive:][label]
LABEL [/MP] [volume] [label]
drive: 指定驱动器名。
label 指定卷标签。
/MP 指定卷应该被当作安装点或卷名。
volume 指定驱动器(后面跟一个冒号)、装入点
或卷名。如果指定了卷名,/MP 标志则不必要。
MD:创建目录。
MKDIR [drive:]path
MD [drive:]path
如果命令扩展名被启用,MKDIR 会如下改变:
如果需要,MKDIR 会在路径中创建中级目录。例如: 假设 a 不
存在,那么:
mkdir abcd
与:
mkdir a
chdir a
mkdir b
chdir b
mkdir c
chdir c
mkdir d
相同。如果扩展名被停用,则需要键入 mkdir abcd。
MOVE:移动文件并重命名文件和目录。
要移动至少一个文件:
MOVE [/Y │ /-Y] [drive:][path]filename1[,...] destination
要重命名一个目录:
MOVE [/Y │ /-Y] [drive:][path]dirname1 dirname2
[drive:][path]filename1 指定您想移动的文件位置和名称。
destination 指定文件的新位置。目标可包含一个驱动器号
和冒号、一个目录名或组合。如果只移动一个文件
并在移动时将其重命名,您还可以包括文件名。
[drive:][path]dirname1 指定要重命名的目录。
dirname2 指定目录的新名称。
/Y 取消确认改写一个现有目标文件的提示。
/-Y 对确认改写一个现有目标文件发出提示。
命令行开关 /Y 可以出现在 COPYCMD 环境变量中。这可以用命令行上
的 /-Y 替代。默认值是,除非 MOVE 命令是从一个批脚本内
执行的,改写时都发出提示。
PROMPT:更改命令提示符。
PROMPT [text]
text 指定新的命令提示符。
提示符可以由普通字符及下列特定代码组成:
& (短 and 符号)
│ (管道)
( (左括弧)
当前日期
Escape code (ASCII 码 27)
) (右括弧)
> (大于符号)
Backspace (擦除前一个字符)
< (小于符号)
当前驱动器
当前驱动器及路径
= (等号)
(空格)
当前时间
版本号
/usr/local/apache/bin/httpd 换行
$$ $ (货币符号)
如果命令扩展名被启用,PROMPT 命令会支持下列格式化字符:
$+ 根据 PUSHD 目录堆栈的深度,零个或零个以上加号(+)字符;
每个被推的层有一个字符。
如果当前驱动器不是网络驱动器,显示跟当前驱动器号或
空字符串有关联的远程名。
TIME:显示或设置系统时间。
TIME [/T │ time]
显示当前时间设置和输入新时间的提示,请键入
不带参数的 TIME。要保留现有时间,请按 ENTER。
如果命令扩展名被启用,DATE 命令会支持 /T 命令行开关;该命令行开关告诉
命令只输出当前时间,但不提示输出新时间。
TREE:以图形显示驱动器或路径的文件夹结构。
TREE [drive:][path] [/F] [/A]
/F 显示每个文件夹中文件的名称。
/A 使用 ASCII 字符,而不使用扩展字符。
VER:显示 DOS / Windows 版本。
XCOPY:复制文件和目录树。
XCOPY source [destination] [/A │ /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
[/EXCLUDE:file1[+file2][+file3]...]
source 指定要复制的文件。
destination 指定新文件的位置和/或名称。
/A 只复制有存档属性集的文件,
但不改变属性。
/M 只复制有存档属性集的文件,
并关闭存档属性。
/D:m-d-y 复制在指定日期或指定日期以后改变的文件。
如果没有提供日期,只复制那些源时间
比目标时间新的文件。
/EXCLUDE:file1[+file2][+file3]...
指定含有字符串的文件列表。如果有任何
字符串与要被复制的文件的绝对路径
相符,那个文件将不会得到复制。
例如,指定如 obj 或 .obj 的字符串会排除
目录 obj 下面的所有文件或带有
.obj 扩展名的文件。
/P 创建每个目标文件前提示。
/S 复制目录和子目录,除了空的。
/E 复制目录和子目录,包括空的。
与 /S /E 相同。可以用来修改 /T。
/V 验证每个新文件。
/W 提示您在复制前按键。
/C 即使有错误,也继续复制。
/I 如果目标不存在,又在复制一个以上的文件,
则假定目标一定是一个目录。
/Q 复制时不显示文件名。
/F 复制时显示完整的源和目标文件名。
/L 显示要复制的文件。
/G 允许将没有经过加密的文件复制到
不支持加密的目标。
/H 也复制隐藏和系统文件。
/R 改写只读文件。
/T 创建目录结构,但不复制文件。不
包括空目录或子目录。/T /E 包括
空目录和子目录。
/U 只复制已经存在于目标中的文件。
/K 复制属性。一般的 Xcopy 会重设只读属性。
/N 用生成的短名复制。
/O 复制文件所有权和 ACL 信息。
/X 复制文件审核设置(隐含 /O)。
/Y 禁止提示以确认改写一个
现存目标文件。
/-Y 导致提示以确认改写一个
现存目标文件。
/Z 用重新启动模式复制网络文件。
使用批处理文件--常用命令
echo、@、call、pause、rem 是批处理文件最常用的几个命令,我们就从他们开始学起。 echo 表示显示此命令后的字符
echo off 表示在此语句后所有运行的命令都不显示命令行本身
@ 与echo off相象,但它是加在其它命令行的最前面,表示运行时不显示命令行本身。
call 调用另一条批处理文件(如果直接调用别的批处理文件 ,执行完那条文件后将无法执行当前文件后续命令)
pause 运行此句会暂停,显示Press any key to continue... 等待用户按任意键后继续
rem 表示此命令后的字符为解释行,不执行,只是给自己今后查找用的
例:用edit编辑a.bat文件,输入下列内容后存盘为c:a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能。
批处理文件的内容为: 文件表示:
echo off 不显示命令行
dir c:*.* >a.txt 将c盘文件列表写入a.txt
call c:ucdosucdos.bat 调用ucdos
echo 你好 显示"你好"
pause 暂停,等待按键继续
rem 使用wps 注释将使用wps
cd ucdos 进入ucdos目录
wps 使用wps
批处理文件中还可以像C语言一样使用参数,这只需用到一个参数表示符%。
%表示参数,参数是指在运行批处理文件时在文件名后加的字符串。变量可以从 %0到%9,%0表示文件名本身,字符串用%1到%9顺序表示。
例如,C:根目录下一批处理文件名为f.bat,内容为 format %1
则如果执行C:>f a: 则实际执行的是format a:
又如C:根目录下一批处理文件的名为t.bat,内容为 type %1 type %2
那么运行C:>t a.txt b.txt 将顺序地显示a.txt和b.txt文件的内容
if goto choice for 是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。
if 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式:
1、if "参数" == "字符串" 待执行的命令
参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)
如if "%1"=="a" format a:
2、if exist 文件名 待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。如if exist config.sys edit config.sys
3、if errorlevel 数字 待执行的命令
如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。如if errorlevel 2 goto x2 DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码
goto 批处理文件运行到这里将跳到goto 所指定的标号处, 一般与if配合使用。 如:
goto end
:end
echo this is the end
标号用 :字符串 表示,标号所在行不被执行
choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……
如: choice /cme defrag,mem,end
将显示
defrag,mem,end[D,M,E]?
例如,test.bat的内容如下:
@echo off
choice /cme defrag,mem,end
if errorlevel 3 goto defrag 应先判断数值最高的错误码
if errorlevel 2 goto mem
if errotlevel 1 goto end
efrag
c:dosdefrag
goto end
:mem
mem
goto end
:end
echo good bye
此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。
for 循环命令,只要条件符合,它将多次执行同一命令。
格式FOR [%%f] in (集合) DO [命令]
只要参数f在指定的集合内,则条件成立,执行命令
如果一条批处理文件中有一行:
for %%c in (*.bat *.txt) do type %%c
含义是如果是以bat或txt结尾的文件,则显示文件的内容。
DOS在启动会自动运行autoexec.bat这条文件,一般我们在里面装载每次必用的程序,如: path(设置路径)、smartdrv(磁盘加速)、 mouse(鼠标启动)、mscdex(光驱连接)、 doskey(键盘管理)、set(设置环境变量)等。
如果启动盘根目录中没有这个文件,电脑会让用户输入日期和时间。
例如,一个典型的autoexec.bat内容如下:
@echo off 不显示命令行
prompt
path c:dos;c:;c:windows;c:ucdos;c:tools 设置路径
lh c:dosdoskey.com 加载键盘管理
lh c:mousemouse.com 加载鼠标管理
lh c:dossmartdrv.exe 加载磁盘加速管理
lh c:dosmscdex /S /D:MSCD000 /M:12 /V 加载CD-ROM驱动
set temp=c:temp 设置临时目录
10.for 命令
for 命令是一个比较复杂的命令,主要用于参数在指定的范围内循环执行命令。
在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable
for {%variable|%%variable} in (set) do command [ CommandLineOptions]
%variable 指定一个单一字母可替换的参数。
(set) 指定一个或一组文件。可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters 为特定命令指定参数或命令行开关。
在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable
而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I
如果命令扩展名被启用,下列额外的 FOR 命令格式会受到
支持:
FOR /D %variable IN (set) DO command [command-parameters]
如果集中包含通配符,则指定与目录名匹配,而不与文件
名匹配。
FOR /R [[drive:]path] %variable IN (set) DO command [command-
检查以 [drive:]path 为根的目录树,指向每个目录中的
FOR 语句。如果在 /R 后没有指定目录,则使用当前
目录。如果集仅为一个单点(.)字符,则枚举该目录树。
FOR /L %variable IN (start,step,end) DO command [command-para
该集表示以增量形式从开始到结束的一个数字序列。
因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生
序列 (5 4 3 2 1)。
FOR /F ["options"] %variable IN (file-set) DO command
FOR /F ["options"] %variable IN ("string") DO command
FOR /F ["options"] %variable IN ('command') DO command
或者,如果有 usebackq 选项:
FOR /F ["options"] %variable IN (file-set) DO command
FOR /F ["options"] %variable IN ("string") DO command
FOR /F ["options"] %variable IN ('command') DO command
filenameset 为一个或多个文件名。继续到 filenameset 中的
下一个文件之前,每份文件都已被打开、读取并经过处理。
处理包括读取文件,将其分成一行行的文字,然后将每行
解析成零或更多的符号。然后用已找到的符号字符串变量值
调用 For 循环。以默认方式,/F 通过每个文件的每一行中分开
的第一个空白符号。跳过空白行。您可通过指定可选 "options"
参数替代默认解析操作。这个带引号的字符串包括一个或多个
指定不同解析选项的关键字。这些关键字为:
eol=c - 指一个行注释字符的结尾(就一个)