欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

DOS自带的批处理命令

程序员文章站 2022-06-16 15:55:24
文件名是由文件路径和文件名称合起来的,如c:\dos\command.com。 dir 显示文件和文件夹(目录)。 用法:dir [文件名] ...
文件名是由文件路径和文件名称合起来的,如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(寻找字符)等。




@:将这个符号放在批文件中其它命令的前面,运行时将不显示命令本身。
如@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等。在批处理文件中使用以上的工具可以实现非常强大的功能,甚至可以完成许多高级语言程序的功能。