批处理是什么
1、概念
== 批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理。批处理文件的扩展名为 bat ;DOS批处理则是基于DOS命令的,用来自动的批量的执行DOS命令已实现特定操作的脚本
== 批处理 = DOS命令的集合 + 流程控制逻辑
2、释义
== 批处理是一种简化的脚本语言,也称作宏。它应用于DOS和Windows系统中,她是有DOS或者Windows系统内嵌的命令解释器( 通常是 COMMOAND.COM 或者 CMD.EXE )解释运行,类似 Unix中的Shell脚本。
== 批处理文件具有 .bat 或者 .cmd 的扩展名,其最简单的例子,是逐行书写在命令行中会用到的各种命令,更复杂的情况,需要使用 If 、for 、 goto 等命令控制程序的运行过程,如同 C 、 Basic 等中高级语言一样。
3、编写
== 因为批处理文件的内容是文本格式,所以编写批处理文件并没有什么编程环境的要求,任何一个文本编辑器都可以用来编写批处理文件,像DOS下的 Edit 、WPS 、以及DOS自带的Copy命令的扩展Copy con 命令就可以编写,Windows下的记事本、写字板等。
4、执行
== 由于批处理文件其实就是一个命令的集合,所以批处理文件的工作平台是由这些命令所工作的平台来决定,这主要只的Microsoft 的DOS 和 Windows系统
5、示例
== 编写一个输出 “ Hello World ” 批处理脚本的步骤
- 新建一个文本文件 test.txt ,并将后缀名改成 bat ;
- 在 test.bat 中输入一下内容并保存
+++++++++++++++++++++++++++++++++
+ @echo off +
+ echo "hello world" +
+ pause +
+++++++++++++++++++++++++++++++++
- 双击 test.bat ( 或者在 cmd 命令行调用 test.bat )
6、优点
== 批处理是一门简单的脚本语言,虽然不能独当一面,但是若是作为工作中的辅助工具,绝对会让大家有随用碎写、称心如意的畅快感。和其他语言相比,批处理语言有其先天性的有势:
-- 系统自带,无需另行安装;
-- 命令少,语句简介,上手非常快;
-- 编写出来的脚本小巧玲珑,随写随用;
批处理能干什么
== 批处理文件 ( Batch File ,简称 bat文件 ) 是一种在DOS下最常用的可执行文件。
== 具有灵活的操纵性,可适应各种复杂的计算机操作
== 所谓的批处理,就是按照规定的顺序自动执行若干个指定的DOS命令或者程序,即
是把原来一个一个执行的命令汇总起来,成批的执行,而程序文件可以移植到其他电脑中运行,因此可以大大节省命令反复输出的繁琐
== 批处理文件有一些编程的特点,可以通过扩展参数来灵活的控制程序的执行,所以在日常工作中非常实用
1、DOS内置命令
DOS内置的 86个 系统命令的功能,也是批处理可以使用的功能
- 运行 cmd ,输入 help 即可看到
2、DOS调用外部命令功能
3、命令的排列组合 ( 内部命令 、 外部命令 、 if判断 、 for循环 )
4、主要用途
== 批量执行命令
== 系统管理
== 文件处理
== 字符串处理
批处理基本语法
1、常用命令
== 名称: echo
== 功能: 打开回显或者关闭请求回显功能,或显示消息。如果没有任何参数,echo 将显示当前回显设置
== 语法:
-- echo [ { on | off } ] [ Message ]
-- 示例: @echo off / echo hello world
== 备注: 在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用 > >> ^ )结合来实现输入一些命令到特定的文件中
== 名称: rem
== 功能: 注释命令,类似于在C语言中的/*---*/,它并不会被执行,只是起一个注释的作用,只有在编辑批处理时才会被看到,主要用于方便修改
== 语法:
-- Rem [ 注释内容 ]
-- 示例: Rem 你好
== 备注: :: 也有rem的功能,但 :: 和rem还是有区别的,当关闭回显时,rem和 :: 后的内容都不会显示,但是当打开回显时,rem后的内容会显示处理,然而::后的内容仍然不会显示
== 名称: pause
== 功能: 暂停命令。运行Pause命令时,将显示下面的消息: Press any key to continue...( 或: 请按任意键继续... )
== 语法:
-- pause
-- 示例:
echo 请插入另一张光盘...
pause
== 名称: call
== 功能: 从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call命令接受用作调用目标的标签。如果在脚本或批处理文件外使用Call,它将不会在命令行起作用
== 语法:
-- call [ 路径文件名 ] [ 标签 ]
-- 参数: { Drive } [ Path ] FileName
-- 示例:
call c:\\test.bat
== 名称: start
== 功能: 调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用
== 语法:
-- start [ 路径文件名 ]
-- 参数:
= MIN 开始时窗口最小化
= SEPARATE 在分开的空间内开始16位Windows程序
= HIGH 在HIGH优先级类别开始应用程序
= REALTIME 在REALTIME优先级类别开始应用程序
= WAIT 启动应用程序并等候它结束
= parameters 这些为传送到命令/程序的参数
-- 示例:
start calc.exe 即可打开Windows的计算器
== 名称: goto
== 功能: 跳转命令。程序指针跳转到指定的标签,从标签后的第一条命令开始继续执行批处理程序
== 语法:
-- goto label
-- 参数:
label 是参数 ,字符串格式,指定所要转向的批处理程序中的行
-- 示例:
:1
start
goto 1
== 备注: 标签的名字可以随便起,但是最好是有意义的字母,字母前加个 : 用来表示这个字母是标签,goto命令就是更具这个 : 来寻找下一步跳到那里
== 名称: set
== 功能: 显示、设置或删除变量。显示变量:set或set s 前者显示批处理当前已定义的所有变量及其值,后者表示显示所有以 s 开头的变量及值
== 语法:
-- set var=value
-- 参数:
var 是变量名称,字符串格式。 value是具体的值,类型是字符串或数值
-- 示例:
set aa=abcd 就是把 aa定义为 abcd
-- set aa= 此句命令即可删除变量aa 若变量aa已被定义,则删除变量aa ; 若aa尚未定义,则此句命令无实际意义
== 备注: 批处理命令中的变量是不区分类型的,不需要像C语言中的变量那样还要区分 int 、float 、char 等。比如执行 set aa=345后,变量aa的值既可以被视为数字345,也可以被视为字符串345。 set 命令具有扩展功能,如用作交互输入、字符串处理、数值计算等,属于高级命令范畴
2、符号简介
== 符号: @
== 功能: 回显屏蔽,表示不显示后面的命令
== 示例:
通过运行批处理文件对比 pause 和 @pause 命令
== 符号: > 与 >>
== 功能: 输出信息重定向到指定的设备或文件。系统默认输出到显示器
== 示例:
-- echo aaa > a.txt
即可将本在显示器上显示的信息 aaa输出到文本 a.txt 中,屏幕上没有任何显示。如果文件 a.txt 本来已经存在,该命令将首先擦除 a.txt 中的所有信息,然后写入信息 aaa ;若 a.txt 本来就不存在,该命令即可新建一个 a.txt 文件,并写入信息 aaa
-- echo aaa >> a.txt
类似于 echo aaa > a.txt 区别在于:如果 a.txt 已存在, > a.txt 会擦除a.txt中的原有内容,而 >>a.txt并不擦除原有内容,仅仅在a.txt文件的末尾添加信息 aaa ; a.txt不存在时,二者没有差别
== 符号: <
== 功能: 将输入信息来源重定向为指定的设备或文件。系统默认从显示器读取输入信息
== 符号: |
== 功能: 管道符号,将前面命令的输出结果重定向输出到管道符号后面的命令中去,座位后面命令的输入。
== 使用格式: command_1 | command_2
== 示例:
-- D:\> echo y | del /p a.txt
使用管道命令将答案Y输出给后面的命令,它就可以自动执行了
== 符号:^
== 功能:转义符号,将特殊符号转化为一般符号,即剥离特殊符号的特殊地位
-- 特殊符号指: | & > <
比如 我们想要输出符号 “ > ” ,直接用命令 echo > 是不行的, 必须修改为 echo^>
其余几个特殊符号类似需要有同样的处理。
== 符号: & && ||
== 功能: 逻辑命令符号,
-- & 它的作用是用来连接n个DOS命令,并把这些命令按顺序执行,而不管是否有命令执行失败。
-- && 表示当前面的命令成功执行时,则执行 && 后面的命令,否则不执行 ;
-- || 表示当前面的命令失败时,执行 || 后面的命令,否则不执行