- 批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于 DOS 和 Windows 系统中。批处理文件的扩展名为 bat(或 cmd)。通常我们指定的批处理指 DOS批处理脚本。
- DOS 批处理则是基于 DOS 命令的,用来自动地批量地执行 DOS 命令以实现特定操作的脚本。更复杂的情况,需要使用if、for、goto等命令控制程式的运行过程,如同 C、Python 等高级语言一样。如果需要实现更复杂的应用,利用外部程式是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前系统下可运行的程序都可以放在批处理文件中运行。
常用命令也可见文章:链接
- cd 显示当前目录名或改变当前目录。
- md 创建目录。
- rd 删除一个目录。
- dir 显示目录中的文件和子目录列表。
- tree 以图形显示驱动器或路径的文件夹结构。
- path 为可执行文件显示或设置一个搜索路径。
- xcopy 复制文件和目录树。
- type 显示文本文件的内容。
- copy 将一份或多份文件复制到另一个位置。
- del 删除一个或数个文件。
- move 移动文件并重命名文件和目录。(Windows XP Home Edition中没有)
- ren 重命名文件。
- replace 替换文件。
- attrib 显示或更改文件属性。
- find 搜索字符串。
- fc 比较两个文件或两个文件集并显示它们之间的不同
- ping 进行网络连接测试、名称解析
- ftp 文件传输
- net 网络命令集及用户管理
- telnet 远程登陆
- ipconfig显示、修改TCP/IP设置
- msg 给用户发送消息
- arp 显示、修改局域网的IP地址-物理地址映射列表
- at 安排在特定日期和时间运行命令和程序
- shutdown立即或定时关机或重启
- tskill 结束进程
- taskkill结束进程(比tskill高级,但WinXPHome版中无该命令)
- tasklist显示进程列表(Windows XP Home Edition中没有)
- sc 系统服务设置与控制
- reg 注册表控制台工具
- powercfg控制系统上的电源设置
在bat脚本中,我们使用 和 添加注释,用法如下:
注意
- 只能出现在每一行的开头,其后的内容被当作注释
- 可用于任何位置,其后的内容被当作是注释
变量类型包括:数字、字符串及数组。
注意:
- 变量名与内容之间通过连接且没有空格
在bat脚本中,if条件判断语句共有6种比较操作符,分别为
注意:
- 只有等于操作符可以使用符号 表示
- 前面必须有空格!!!!
遍历指定目录的所有目录
遍历文件中的每一行
:选项表示结束当前的批处理脚本或子例程。
: 用于指定退出码。如果未提供 exitCode,则默认退出码为上一个命令的返回码。
7.1 字符串连接
这将输出 Hello World。在批处理中,可以使用 % 符号来引用变量,并使用空格将字符串连接起来。
7.2 字符串截取
这将输出 abc。:~ 后跟的是截取的起始索引和长度。在这个例子中,0,3 表示从索引 0 开始截取,长度为 3。
7.3 字符串查找:
这将输出 cdef。如果省略长度,则从指定的索引开始一直截取到字符串末尾。
7.4 字符串替换:
用于启用延迟扩展(Delayed Expansion)模式,它是 Windows 批处理脚本中的一个特性。在启用延迟扩展后,! 可以用来获取变量的值,而不仅仅是 %。
在默认模式下,批处理脚本在执行代码块时会提前替换变量的值,因此如果在一个代码块中改变了变量的值,这个改变后的值在同一个代码块中将不会被正确地获取。启用延迟扩展后,可以使用 ! 来延迟获取变量的值,使得在代码块内部修改变量后,可以正确地获取到修改后的值。
用于结束由 开始的本地环境,恢复到调用 之前的环境状态。
在批处理脚本中, 用于创建一个本地环境,这个本地环境中的变量和状态只对当前批处理文件有效,不会影响到其他批处理文件或者批处理文件的外部环境。 用于关闭这个本地环境,恢复到调用 之前的环境状态。
这样做的好处是可以在脚本中创建临时的环境,进行一些操作,而不用担心对外部环境产生影响。通常在脚本的末尾会使用 来确保脚本结束时本地环境被正确关闭,以免影响到其他的脚本执行。
可参考文件:链接
注意,bat 脚本不区分大小写。
:: 用于进行文本的注释,执行后不会回显内容。
rem 用于文本注释,执行后会回显内容。
@字符放在命令前将关闭该命令回显,⽆论此时echo是否为打开状态。
- 打开回显功能:
- 关闭回显功能:
- 输出空行: 或 或 或 等
- 显示当前echo状态:
- 输出提示信息:
- 答复提问:
- 新建文件:
- 新增内容:
- 喇叭鸣响:
使当前程序暂停,并输出以下内容,作用是为了让我们知道程序运行到哪步了。
显示其他提示语:
获取程序返回码:
每个命令运⾏结束,可以⽤这个命令⾏格式查看返回码。⽤于判断刚才的命令是否执⾏成功,默认值为0,⼀般命令执⾏出错会设 errorlevel 为1。
设置cmd窗口的标题,语法如下:
设置默认控制台的前景色和背景色,语法如下:
颜⾊属性由两个⼗六进制数字指定 – 第⼀个为背景色,第⼆个则为前景色。每个数字可以为以下任何值之⼀。
示例如下:
通过和可以实现跳转执行命令。
在文件中搜索字符串,语法如下:
- /v 显示所有未包含指定字符串的行
- /c 仅显示包含字符串的行数
- /n 显示行号
- /i 搜索字符串时忽略大小写
- /off[line] 不要跳过具有脱机属性集的文件
- “字符串” 指定要搜索的字符串
- [drive:][path]filename 指定要搜索的文件
批处理中用来调用外部程序的命令,语法如下:
参数:
- 指定程序的起始目录
- 最小化启动窗口
- 最大化启动窗口
- 等待启动的程序结束后才继续脚本
- 在同一窗口中启动程序
- 隐藏控制台执行程序
说明:
- 该命令将在新进程中运行外部程序,原批处理程序将继续执行
- 执行运行外部程序则会等待外部程序完成后再继续执行后续指令
示例: 将会使用图形界面打开D盘。
CALL命令可以在批处理执⾏过程中调⽤另⼀个批处理,只有当被调用的批处理执⾏完后,才能继续执⾏原来的批处理,语法如下:
assoc 和 ftype 可实现文件关联,语法如下:
主要用于保存并返回初始目录,示例如下:
条件判断语句,语法如下:
在这个例子中, 设置控制台窗口的列数为80,行数为30。
用在任何命令前面,实现关闭当前行的回显.
:批处理本身所在的路径
DOS的标准输⼊输出通常是在标准设备键盘和显⽰器上进⾏的,利⽤重定向,可以⽅便地将输⼊输出改向磁盘⽂件或其它设备。其中:
- ⼤于号 将命令发送到⽂件或设备,例如打印机>prn
- 双⼤于号 将命令输出添加到⽂件结尾⽽不删除⽂件中已有的信息
- ⼩于号 从⽂件⽽不是键盘上获取命令所需的输⼊
- 符号将输出从⼀个默认I/O流(stdout,stdin,stderr)重新定向到另⼀个默认I/O流
和 有点类似,但他们的区别是 是传递并在⽂件的末尾追加,⽽ 是覆盖。
在命令行模式下设置的环境变量,属于临时环境变量,只针对当前的CMD命令窗口有效,并不影响其他窗口中的环境变量,更不会影响到永久性的环境变量,要设置永久的环境变量,需要通过图形操作修改。
CMD
PowerShell
如果需要执行指定的脚本文件,请使用 命令,示例如下:
① 搜索当前目录是否存在以指定字符串结尾的文件夹
https://www.jb51.net/article/250331.htm
http://www.taodudu.cc/news/show-3034558.html
https://www.w3cschool.cn/dosmlxxsc1/wvqyr9.html
https://www.runoob.com/linux/linux-shell-variable.html
https://www.hxstrive.com/subject/windows_bat.htm?id=36
https://cloud.tencent.com/developer/article/2118950
https://www.yiibai.com/batch_script/
https://zhuanlan.zhihu.com/p/415626343
http://t.csdn.cn/hJaPh
http://t.csdn.cn/3R7Be
http://t.csdn.cn/zFfr5
http://t.csdn.cn/JmcoH
http://t.csdn.cn/ui048
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/48452.html