BAT(批处理)文件编写详细手册

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

BAT(批处理)文件编写详细手册

一、批处理文件简介

首先,批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows

的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。

其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。

第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch 目录(例如C:/BATCH),然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置上c:/batch,你就可以在任意位置运行所有你编写的批处理程序。

简单的说,批处理的作用就是自动的连续执行多条命令。

二、批处理中常用命令:

1.echo命令:表示显示此命令后的字符。字符不需要使用引号。其中,%和^两个字

符不能显示。

2.Echo off命令:表示在此语句后所有运行的命令都不显示命令行本身。即关闭echo

回显功能。可以使用echo on打开。

3.@命令:它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能

影响当前行)。

4.call命令:调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那

么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。

5.pause命令:运行此句会暂停批处理的执行并在屏幕上显示Press any key to

continue...的提示,等待用户按任意键后继续。如果不想显示以上英文提示信息,

可以这样写:pause>null

6.rem命令:表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考

用的(相当于程序中的注释)。

7.::命令:与rem命令等效。

例1:用edit编辑文件,输入下列内容后存盘为c:/,执行该批处理文件后可实现:将根目录中所有文件写入中,启动UCDOS,进入WPS等功能。

批处理文件的内容为: 命令注释:

@echo off >%*参数:返回参数,不过他是一次返回全部参数,不用分别%1,%2等一一返回。

例子

@echo off

echo %*

同样保存为放到C盘

进入CMD,输入cd c:\

然后输入我是第一个参数我是第二个参数我是第三个参数我是第四个参数

可以看到他一次把全部参数都显示出来了

三、自定义变量:

自定义变量使用set命令。如:

@echo off

set var=value if 条件1 (command1) else (command2) do echo %%i --显示当前目录下与t*.*相匹配的文件(只显示文件名,不显示路径)

for %%i in (d:\mydocuments\*.doc) do @echo %%i --显示d:\mydocuments\目录

下与*.doc相匹配的文件

1.带有参数时:

(1)参数 /d (参数只能显示当前目录下的目录名字)

格式:FOR /D %variable IN (set) DO command [command-parameters]

这个参数主要用于目录搜索,不会搜索文件,/D 参数只能显示当前目录

下的目录名字。(特别说明:只会搜索指定目录下的目录,不会搜索再

下一级的目录。)

for /d %%i in (c:\*) do echo %%i --显示c盘根目录下的所有目录

for /d %%i in () do echo %%i --显示当前目录下名字只有1-3个字母的目录

(2)参数 /R (搜索指定路径及所有子目录中与set相符合的所有文件)

格式:

FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

此命令会搜索指定路径及所有子目录中与set相符合的所有文件,注意是指定路径及所有子目录。

set中的文件名如果含有通配符(或*),则列举/R参数指定的目录及其下面的所有子目录中与set相符合的所有文件,无相符文件的目录则不列举。

如果set中为具体文件名,不含通配符,则枚举该目录树(即列举该目录及其下面的所有子目录)(并在后面加上具体的文件名),而不管set 中的指定文件是否存在。

示例:

for /r c:\ %%i in do echo %%i --枚举了c盘所有目录,没有通配符,命令结果会将文件名自动见到c:\下所有的目录下,并显示出来。

for /r c:\ %%i in (boot*.ini) do echo %%i --包括了通配符,只列举出保护符合通配符的文件所在的目录。

for /r d:\backup %%i in (1) do echo %%i --枚举d\backup目录

for /r c:\ %%i in do if exist %%i echo %%i --很好的搜索命令,列举存在的目录

(3)参数 /L (该集表示以增量形式从开始到结束的一个数字序列。可以使用

负的 Step)

格式:

FOR /L %variable IN (start,step,end) DO command [command-parameters]

for /l %%i in (1,1,5) do @echo %%i --输出1 2 3 4 5 1行第1列第1行第2列第1行第3列

.第2行第1列第2行第2列第2行第3列

第3行第1列第3行第2列第3行第3列

相关文档
最新文档