您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 一份比较详细的DOS命令说明
Q:一份比较详细的DOS命令说明DOS下的可执行文件有三种,分别是EXE,COM和BAT。其中,EXE和COM文件都是二进制形式的,只有BAT文件是文本形式的,可以直接阅读。因此,BAT文件和以上二进制可执行文件相比,内容要简单的多。这些文件内包含着DOS命令的集合,通常叫作批处理文件。批处理文件的组成虽然比较简单,但其用处非常大,使用也比较广泛。比如每次都执行一些相同的命令,您一定会觉得非常麻烦,而放在批处理文件中执行的话则轻松得多。AUTOEXEC.BAT就是一个特殊的批处理文件,它在DOS的启动时自动运行,在系统的配置中发挥着非常大的作用。因此,要学好DOS,就要学好批处理文件。下面介绍批处理文件的命令及其使用。DOS自带的批处理命令:@:将这个符号放在批文件中其它命令的前面,运行时将不显示命令本身。如@ECHOOFF命令就在批文件首经常用到。CALL:从一个批文件中调用另一个批文件,调用完后继续执行原来的批文件。用法:CALL[批文件名]注:也可以使用COMMAND/C命令完成同样的操作。CHOICE:选择命令。这是一个DOS外部命令,但它主要用在批文件中。CHOICE命令执行后将提示可选择的项目,这时通过一个按键来选则。用法:CHOICE:[/C[:]按键表][/N][/S][/T[:]选择值,秒数][显示文本]其中,/C表示可选则的按键,/N表示不要显示提示信息,/S表示大小写字符敏感方式,/T表示若在批定的时间内没有选则的话,自动执行/C中定义的某个选择值。显示文本是CHOICE命令执行时的提示信息。选择结果将用ERRORLEVEL值来表示。ECHO:显示指定的信息。通常显示在屏幕上。如ECHOHello将在屏幕上显示Hello的字样。另外,ECHOON|OFF用来设置在批文件执行时是否显示命令本身。而ECHOOFF与@的意思一样,但它是一个单独的命令,而不能像@那样放在其它命令之前。FOR:对于指定的文件运行相应的命令。大家知道,DOS下许多命令支持通配符,如?和*,可以一次指定一批文件,非常方便。然而,并非所有的DOS命令都支持通配符,如TYPE(文件内容显示命令)就不支持。有了FOR命令就没有关系了,利于它可以使TYPE命令可以一次显示多个文件。用法:FOR%变量名IN(文件集)DO命令[命令参数]注:以上是FOR命令的固定形式,IN和DO的位置必须正确,否则将提示语法错误。如FOR%FIN(*.*)DOTYPE%F命令就可以实现TYPE命令一次显示多个文件。注:%F是变量名,也可用%G等代替,但前后必须一致。在批文件中用%%F代替。GOTO:转到批文件内部的某个标号下执行。大家知道,在编程中往往需要重复或跳转到某个地方继续执行,如BASIC语言中的GOTO命令。批文件中的GOTO命令也可以完成类似的功能。用法:GOTO[标号名]其中,标号名是可以随意设置的,如Hello等。设置标号用“:”符号,如“:Hello”,这时用GOTOHello命令将转到“:Hello”所在的位置继续执行批文件。IF:条件判断命令。这是一项很有用的批处理命令。用法1:IF[NOT]EXIST文件名命令[命令参数]意义:如果[不]存在某个文件将执行某个命令。用法2:IF[NOT]ERRORLEVEL错误返回代号命令[命令参数]意义:如果错误返回代号[不]大于或等于指定的代号将执行某个命令。其中,ERRORLEVEL表示错误返回代号,很有用。对于很多DOS命令,由于执行的结果不同(如执行成功,执行失败,或被用户中断等),这些命令会返回不同的代号,以表示不同的结果。IFERRORLEVEL命令就根据这个不同结果而产生的不同代号来执行不同的命令,通常用在某条命令之后。如IFERRORLEVEL1ECHOOK!表示如果当前的错误返回代号大于或等于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.BATYES,于是%0的值就是MYFILE.BAT,%1的值就是“YES”,可以在此批文件中用IF等命令判断出%1等参数的值,然后根据这些值的不同执行不同的操作,如IF%1==YESGOTOYES。SHIFT命令不带任何参数,执行结果是将%0的值换成原%1的值,而原%1的值变成的原%2的值,以此类推。注意它的不可逆转性。因为批处理文件执行时的运行参数可能很多,可能会超过10个,而可替换参数只能从%0到%9,若想取得%9以后的参数值,只能使用SHIFT命令。这时,整个参数列将向前推。以上是DOS的自带批处理命令,可以看出,这些命令是非常少的,若要编写较复杂的程序,用以上的命令显然不可能实现。这时就需要其它实用的批处理工具了,著名且实用的有TESTIF,STRING,ASET,BATCHMAN,WBAT等,均可在“DOS软件分类下载”中的“脚本工具”中下载。在批处理文件中使用以上的工具可以实现非常强大的功能,甚至可以完成许多高级语言程序的功能。所以,如果您想编者按写批处理文件的话,它们是您不错的选择,不仅有详细的文档,而且还在不断发展中。下面就要谈批处理文件的制作了。其实制作批处理文件并不难,只要掌握了方法就行了。随着您操作次数的增多,您会觉得越来越容易的。首先使用一个文本编辑器,如DOS自带的EDIT命令或其它的编辑工具,如PEDIT等新建一个空白文件(当然,用COPYCON命令直接创建也行),然后在其中根据您想完成的功能输入批处理命令。如果您只是想执行一些的DOS命令的集合,则按顺序在每行输入一个DOS命令就行了。但如果您是想完成一些更复杂的操作,就需要以上的批处理命令或上述的批处理工具了。以下是我原来所编的一个从1%慢慢增加到100%的批处理小程序,大家可以用作参考,以编写自己的程序。@echooffbreakoffclssetc=0writext101Wait...bedelay4:loopwritext109%c%%%completed.countcifnot%c%==101gotoloopecho.setc=kpush/fbreakon其中,我用到了WRITEXT,COUNT,BE和KPUSH,这些都是批处理工具。WRITEXT是ECHO的增强工具,可以自定义显示的效果。COUNT是变量的计算工具,如原来C的值为1,执行COUNTC后C的值就为2。BE是个强大的批处理增强工具,在NortonUtilties8.0中带有。KPUSH是键盘缓冲工具。总之,利用批处理命令和批处理增强工具,我们可以编出许多强大的批处理文件来。A:1echo和@回显命令@#关闭单行回显echooff#从下一行开始关闭回显@echooff#从本行开始关闭回显。一般批处理第一行都是这个echoon#从下一行开始打开回显echo#显示当前是echooff状态还是echoon状态echo.#输出一个”回车换行”,空白行#(同echo,echo;echo+echo[echo]echo/echo)2errorlevelecho%errorlevel%每个命令运行结束,可以用这个命令行格式查看返回码默认值为0,一般命令执行出错会设errorlevel为13dir显示文件夹内容dir#显示当前目录中的文件和子目录dir/a#显示当前目录中的文件和子目录,包括隐藏文件和系统文件dirc:/a:d#显示C盘当前目录中的目录dirc:/a:-d#显示C盘根目录中的文件dirc:/b/p#/b只显示文件名,/p分页显示dir*.exe/s#显示当前目录和子目录里所有的.exe文件4cd切换目录cd#进入根目录cd#显示当前目录cd/dd:sdk#可以同时更改盘符和目录5md创建目录mdd:abc#如果d:a不存在,将会自动创建中级目录#如果命令扩展名被停用,则需要键入mkdirabc。6rd删除目录rdabc#删除当前目录里的abc子目录,要求为空目录rd/s/qd:temp#删除d:temp文件夹及其子文件夹和文件,/q安静模式7del删除文件deld:test.txt#删除指定文件,不能是隐藏、系统、只读文件del/q/a/fd:temp*.*删除d:temp文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录del/q/a/f/sd:temp*.*删除d:temp及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录8ren重命名命令rend:temptmp#支持对文件夹的重命名9cls清屏10type显示文件内容typec:boot.ini#显示指定文件的内容,程序文件一般会显示乱码type*.txt#显示当前目录里所有.txt文件的内容11copy拷贝文件copyc:test.txtd:test.bak复制c:test.txt文件到d:,并重命名为test.bakcopycontest.txt从屏幕上等待输入,按Ctrl+Z结束输入,输入内容存为test.txt文件con代表屏幕,prn代表打印机,nul代表空设备copy1.txt+2.txt3.txt合并1.txt和2.txt的内容,保存为3.txt文件如果不指定3.txt,则保存到1.txtcopytest.txt+复制文件到自己,实际上是修改了文件日期12title设置cmd窗口的标题title新标题#可以看到cmd窗口的标题栏变了13ver显示系统版本14label和vol设置卷标vol#显示卷标label#显示卷标,同时提示输入新卷标labelc:system#设置C盘的卷标为system15pause暂停命令16rem和::注释命令注释行不执行操作17date和time日期和时间date#显示当前日期,并提示输入新日期,按“回车“略过输入date/t#只显示当前日期,不提示输入新日期time#显示当前时间,并提示输入新时间,按“回车“略过输入time/t#只显示当前时间,不提示输入新时间18goto和:跳转命令:label#行首为:表示该行是标签行,标签行不执行操作gotolabel#跳转到指定的标签那一行19find(外部命令)查找命令find“abc“c:test.txt在c:test.txt文件里查找含abc字符串的行如果找不到,将设errorlevel返回码为1find/i“abc”c:test.txt查找含abc的行,忽略大小写find/c“abc“c:test.txt显示含abc的行的行数20more(外部命令)逐屏显示morec:test.txt#逐屏显示c:test.txt的文件内容21tree显示目录结构treed:#显示D盘的文件目录结构22&顺序执行多条命令,而不管命令是否执行成功23&&和||&&顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令||顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令find“ok“c:test.txt&&echo成功如果找到了“ok“字样,就显示“成功“,找不到就不显示find“ok“c:test.txt||echo不成功如果找不到“ok“字样,就显示“不成功“,找到了就不显示24|管道命令dir*.*/s/a|find/c“.exe“管道命令表示先执行dir命令,对其输出的结果执行后面的find命令该命令行结果:输出当前文件
本文标题:一份比较详细的DOS命令说明
链接地址:https://www.777doc.com/doc-3488329 .html