1.批处理定义
批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。
批处理文件的扩展名为bat 。
比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于微软的强大的PowerShell的,用来批量处理一些任务的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。更复杂的情况,需要使用if、for、goto等命令控制程式的运行过程,如同C、Basic等高级语言一样。如果需要实现更复杂的应用,利用外部程式是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前系统下可运行的程序都可以放在批处理文件中运行。
2.批处理命令简介
- echo 命令
1. 输出显示消息
格式:echo 你要输出的信息
例1
执行显示:
我们写的批处理,能不能让它不显示我们到底写了什么命令?能,这就是echo命令的第二种功能:
2. 关闭命令的回显
格式:@ 放在命令前面
例2
执行显示:
3. 打开回显或关闭回显功能
格式:echo [{ on|off }]
如果在批处命令前加上echo off,那么将会关闭批处理中的命令回显。当然,你要是不想显示echo off
命令本身,你可以把@加在echo off前面。
例3:
执行显示:
- 4 输出空行,即相当于输入一个回车
格式:echo.
注意命令中的“.”要紧跟在ECHO后面,中间不能有空格,否则“.”将被当作提示信息输出到屏幕。另外“.”可以用,:;”/]+ 这些任一符号替代。
例4
执行显示:
命令ECHO.输出的回车,经DOS管道转向可以作为其它命令的输入,比如echo.|time即相当于在TIME命令执行后给出一个回车。所以执行时系统会在显示当前时间后,自动返回到DOS提示符状态。
- 5 答复命令中的提问
格式:ECHO 回复|命令表达式
作用:通过管道命令 | 把“回复”作为输入传导给后面的“命令表达式”,并作为“命令表达式”的输入。(注
意,管道命令|的输入方法,shift键 )
例5
执行显示:
解释一下,这里abc是一个不为空的文件夹,用rd 命令删除时它将会询问你Y或N,这时你就要手动的输入Y/N了。OK,我们把批处改一下,这时系统将会自动帮助我们把Y输入确认了
例 6
- 6 建立新文件或增加文件内容
格式:echo 文件内容>文件名
例 7
这样我们就在当前目录下建立了一个myfile.txt文件,文件的内容为123。如果你想要建立一个空的新文件,那你
可以试一下这个
例8
注:上面所有实例中的pause是暂停命令,主要是用来暂停演示给大家看的
- rem 命令
rem 为注释命令,一般用来给程序加上注解,该命令后的内容不被执行,但能回显。
例1
另外 :: 也可以起到 rem 的注释作用, 而且更简洁有效; 但有两点需要注意!
第一, 任何以冒号:开头的字符行,在批处理中都被视作标号, 而直接忽略其后的所有内容。
有效标号:冒号后紧跟一个以字母数字开头的字符串,goto 语句可以识别。
无效标号:冒号后紧跟一个非字母数字的一个特殊符号,goto 无法识别的标号,可以起到注释
作用,所以 :: 常被用作注释符号,其实 : 也可起注释作用。
例2
第二, 与 rem 不同的是, :: 后的字符行在执行时不会回显, 无论是否用echo on 打开命令行回显状态,
因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下
将比 :: 更为适用; 另外, rem 可以用于 config.sys 文件中
- pause 命令
暂停命令。运行 Pause 命令时,将显示下面的消息:
Press any key to continue. . .(或:请按任意键继续. . .)
示例:
在这个例子中,驱动器 G 中磁盘上的所有文件均复制到d:back中。显示的注释提示您将另一张光盘放入驱动器 G 时,pause 命令会使程序挂起,以便您更换光盘,然后按任意键继续处理。
此命令还可以和echo命令配合使用达到自定义暂停的提示文本,如:
这段代码会输出:
- call 命令
从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call命令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。
语法:
参数:
指定要调用的批处理程序的位置和名称。
除此之外,call命令还可以调用批处理的标签行,如
此代码会调用此批处理内名为startbat的标签行
调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。
如:
即可打开Windows的计算器。
常用参数:
执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。如果在命令
脚本内执行,该新行为则不会发生
- goto 命令
跳转命令。程序指针跳转到指定的标签,从标签后的第一条命令开始继续执行批处理程序。
语法:
(label是参数,指定所要转向的批处理程序中的行。)
示例:
运行以上这段命令,就会打开很多个窗口。这段命令的意思是,先用start命令打开窗口,再用goto 1命令转到1标签,即第一行后面的命令。注意标签名字前面要加上英文的冒号。
标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto
命令就是根据这个:来寻找下一步跳到哪里。最好有一些说明这样别人看起来才会理解你的意图啊。
- set 命令
显示、设置或删除变量。
显示变量:set 或 set s 前者显示批处理当前已定义的所有变量及其值,后者显示所有以s开头的变量及值。
设置和调用变量:例如(也可写作set “aa=abcd”),就是把aa定义为abcd。如果要调用这个变量,就把aa两边加上个百分号。
示例:
运行这段命令就会显示“abcd”。
删除变量:"set aa="此句命令即可删除变量aa。若变量aa已被定义,则删除变量aa;若aa尚未定义,则此句命令无实质意义。
需要说明的是,批处理中的变量是不区分类型的,不需要像C语言中的变量那样还要区分int、float、char等。比如执行set aa=345后,变量aa的值既可以被视为数字345,也可以被视为字符串345。
set命令具有扩展功能,如用作交互输入、字符串处理、数值计算等,属于高级命令范畴。
- assoc命令
添加文件扩展名
语法:
示例:
- cd命令
1。同一个分区的切换
目录切换格式:格式:CD [盘符][路径]
如果当前目录是C:Documents and Settingsmzybar,我们要切换到同一分区下不同的目录,请看下面的例子。(
注:下面例子中的>表示命令行下的提示符,>前面的表示当前目录。)
例1
切换到C:WINDOWS目录
例2
切换到C:WINDOWSsystem32目录
如果当前目录是C:WINDOWSsystem32,我们要返回到上一层目录,即返回到C:WINDOWS时,我们可以这样:
例3
在这里,cd…是不是简单了很多? 当然了,你也可以cd C:WINDOWS
如果当前目录是,我们要返回根目录,即返回到时,你可以试下这个:
例4
在这里返回根目录时,我们用的是cd命令,当然你也是可以cd c:
其实在DOS命令中、和都是表示相对路径的,是当前目录,是上一层目录,而则表示根目录。我们来试下
例5
看到了吧,当输入cd.后还是在原来的位置,因为 。是当前目录,切换到当前目录当然没有变罗
2。不同分区的切换
格式:格式:CD /d [盘符][路径]
如果当前目录是C:Documents and Settingsmzybar,我们需要切换到其它分区目录,请看:
例1
切换到D:123abc
如果我们要切换到D盘的根目录,则有更简单的方法,请看:
例2
3。CD 的另一个用途:显示当前的完整路径,一般用通过 %cd% 加以引用。
例1
执行显示的是当前的完整路径。
- dir命令
显示目录中的文件和子目录列表。
DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
/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 用四位数字显示年
关于dir命令比较多,看到上面一大堆的参数头都晕了, 在这里我们学习一些常用的就OK了~
1。列出c:windows下的目录及文件
格式:
例1
这种方法有明显的缺点——当列表中的目录及文件过多时就无法完全显示,我们将通过/p参数解决这个问题。
例2
我们在命令最后加上一个参数“/p”(即“page”页的缩写),列文件时就会使用分页显示的方式,即列出一屏的目
录及文件后,提示“按任意键继续…”,按任意键后则显示下一屏。这样就可以逐屏查看了!
/B 使用空格式(没有标题信息或摘要)。
例3
我们在查看时,发现列出来的文件都带有日期,时间,创建者等信息,我们可以在命令后加上/b参数,让它只列出文件名称。
2。列出c:下指定属性的文件
格式: attributes D 目录 R 只读文件
H 隐藏文件 A 准备存档的文件
S 系统文件 - 表示“否”的前缀
例1
列出C:下所有的文件。
例2
列出隐含的文件(包含文件和文件夹)。
例3
列出C:下所有的文件夹。
例4
列出C:下所有的文件夹,但不包含隐含的文件夹。
3 按分类列出c:下的文件
格式: sortorder N 按名称(字母顺序) S 按大小(从小到大)
E 按扩展名(字母顺序) D 按日期/时间(从先到后)
G 组目录优先 - 颠倒顺序的前缀
例1
/o:排序方式 参数指定了dir命令显示命令结果时的排序方式,排序方式设为“n”即代表按照文件名的字母顺序排列
(从A~Z,以此类推)。
例2
优先列出文件夹,并且文件夹和文件都按字母顺序排列。
★“/o”和“/a”都可以省略其后的冒号“:”,但之间不能留有空格。如“/o:n”省略后的形式应为“/on”。