批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于 DOS 和 Windows 系统中。批处理文件的扩展名为 bat(或 cmd)。通常我们指定的批处理指 DOS批处理脚本
- 当关闭回显时,rem和::后的内容都不会显示。
- 当打开回显时,rem 后的内容会显示出来,然而::后的内容仍然不会显示。
- chcp 65001 :这行命令会将命令行窗口的编码切换到UTF-8
[设置变量]
格式:set 变量名=变量值
详细:被设定的变量以%变量名%引用
() 分组
! ~ 一元运算符(逻辑非、按位非、取负)
* / % 算数运算符(乘、除得商、除得余数,即取余)
+ - 算数运算符(加、减)
<< >> 逻辑移位(左移一位、右移一位)
& 按位“与”
^ 按位“异”
| 按位“或”
= *= /= %= += -= 赋值
&= ^= |= <<= >>= 赋值
,表达式分隔符(set可一次处理多个表达式)
函数格式:
函数传参
函数返回值
(1)最常用的做法是在函数中将该值保存在全局变量中,调用结束后,直接用该全局变量;参考如前面的函数传参,直接通过全局变量length返回长度结果
(2)通过引用返回值,调用者通过传递一个变量给函数来存储返回值
参本文的 《以下为批处理入门实操教程》的《条件判断结构》
参本文的 《以下为批处理入门实操教程》的《循环结构》
字符串切片
替换字符串
字符串拼接
字符串分割
- delims:告诉for每一行应该拿什么作为分隔符,默认的分隔符是空格和tab键
- tokens:通过delims将每一行分为更小的元素时,由tokens来控制要取哪一个或哪几个
假如文件a.txt中有如下内容:
第1行第1列 第1行第2列 第1行第3列
第2行第1列 第2行第2列 第2行第3列
第3行第1列 第3行第2列 第3行第3列
【1】delims这个参数,=后面有一个空格,意思是再将每个元素以空格分割,默认是只取分割之后的第一个元素
【2】想要每一行的第二列元素;如果要显示第三列,那就换成tokens=3
【3】 如果要显示第二列和第三列,则换成tokens=2,3或tokens=2-3
【4】skip就是要忽略文件的前多少行
【5】同一行字符串分割为多份
扩充字符串
“扩充”意思就是对表示文件路径的字符串进行特殊的处理;
更多功能参考本文:《cd /d %~dp0 命令解释》
find
find的基本操作是在文件中搜索字符串
findstr
findstr 是find的扩展,功能更强大,格式:findstr 参数 字符串 路径文件名
【1】在指定文本中查找指定字符串
【2】指定搜索不分大小写
【3】显示要查找的字符具体在文本哪一行
【4】 查找包含了指定字符的文本
【5】查找以指定字符开始或结尾的文本行
【6】如何查找以hello(忽略大小写)结尾的行?
【7】查找与指定字符完全匹配的行
【8】查找不包含指定字符的行
【9】如何查找当前目录及子目录下文件内容中包
含某字符串的文件名?
【10】 用文本指定要查找的文件 And 用文本制定要查找的字符串
【11】搜索一个完全匹配的句子
【12】搜索一个完全匹配的词
【13】指定要查找的目录:查找在520、编程目录中所有包含任意字符的txt文件
【14】 统计字符,.*为正则表达式的内容,表示任意行,包含空行
【15】 以指定颜色显示文件名,cmd窗口:color /?查看颜色和文字大小
1、echo
打开或关闭回显功能,或显示消息;参本文的 《批处理bat实用案列》的《@echo和echo的区别》
2、rem
注释命令;参本文的 《基本语法》的《注释》
3、pause
运行 Pause 命令时,将显示cmd窗体的echo和运行的消息
4、call
(1)从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。
(2)调用函数
参考参本文的 《基本语法》的《函数》使用
5、start
调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用;
6、goto
跳转命令。程序指针跳转到指定的标签,从标签后的第一条命令开始继续执行批处理程序;
参考参本文的 《基本语法》的《函数》使用
7、set
显示、设置或删除变量;《基本语法》的《变量》使用
8、find
在文件中搜索字符串,参考参本文的 《基本语法》的《find操作》使用
9.date和time
10.pushd 和 popd
11.timeout
12.clr清屏
13.type显示文件内容
参本文的 《基本语法》的《运算》,了解部分符号具体用法
1、回显屏蔽 @
参考本文的《批处理bat实用案列》的《@echo和echo的区别》
2、重定向1 >;与>>
echo aaaaa>>a.txt
和echo aaaaa>a.txt的区别在于:
若a.txt已经存在时,>>会追加在a.txt文本中;若a.txt不存在时,两者没有区别。
3、重定向2 <
set /p ifo=<a.txt
echo 【 从文件a.txt获得的输入信息 】
echo %ifo%
4、管道符号 |
Syntax:command_1|command_2
将command_1的输出重定向为command_2的输入。
5、转义符 ^
将特殊符号转化为一般符号,即剥离特殊符号的特殊地位。特殊符号指:| & > <
比如,如果我们想输出符号“>;”,直接用命令 echo > 是不行的,必须修改为 echo ^>;。其余几个特殊符号类似需要有同样的处理
6、逻辑命令符
逻辑命令符包括:&、&&、||
& :它的作用是用来连接n个DOS命令,并把这些命令按顺序执行,而不管是否有命令执行失败;
&& :当&&;前面的命令成功执行时,执行&&;后面的命令,否则不执行;
|| :当||前面的命令失败时,执行||后面的命令,否则不执行。
文件夹管理:
cd 显示当前目录名或改变当前目录。
md 创建目录。
rd 删除一个目录。
dir 显示目录中的文件和子目录列表。
tree 以图形显示驱动器或路径的文件夹结构。
path 为可执行文件显示或设置一个搜索路径。
copy 复制文件和目录树。
文件管理:
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控制系统上的电源设置
对于以上列出的所有命令,在cmd中输入命令+/?即可查看该命令的帮助信息。如find /?
参本文的 《以下为批处理入门实操教程》的《基本命令格式》
什么是环境变量:
环境变量是操作系统中用于存储系统配置信息的一种机制;
它们是一组动态的值,可以影响操作系统和应用程序的行为。
环境变量通常包含一些重要的路径信息,例如可执行文件的路径、库文件的路径等。
为什么需要环境变量:
比如你想在任意cmd窗口,输入armcc(对应armcc.exe工具),都能显示提示信息;那么就需要配置环境变量;否则cmd当前所在路径只能在armcc.exe所在路径输入armcc,才有提示信息!
方便访问可执行文件:通过将可执行文件的路径添加到环境变量中,我们可以在任何位置直接运行该可执行文件,而不需要指定完整的路径。
简化配置过程:某些应用程序或开发工具需要访问特定的库文件或配置文件。通过设置环境变量,我们可以避免在每次使用这些工具时手动指定路径。
提高系统的灵活性:通过使用环境变量,我们可以轻松地更改系统的配置,而不需要修改应用程序的代码。这使得系统更加灵活和可维护。分类:
临时环境变量:在会话结束后将被清除;
用户环境变量:只对当前用户有效,相当于局部变量。
环境变量的设置:
【1】手动设置:1-> 新建 2->变量名 3->变量值,最后点击确定即可
【2】指令设置:回车之后,打开终端输入如下命令后按回车,环境变量已经保存到系统
创建系统变量:
在cmd窗口中我们可以通过任意一个字符的ASCII码来输入该字符,比如Ctrl+G、Ctrl+N等,字母a-z对应ASCII码的97-122。对于ASCII码大于26的字符,可以通过这个方法来输入:按住Alt键不松,通过小键盘输入ASCII码的十进制值,松开Alt键即可
REM 声明采用UTF-8编码
chcp 65001
表示关闭命令回显功能,即命令执行时不在屏幕上输出命令本身,只输出命令的执行结果。
echo 在屏幕上输出命令本身,也输出命令的执行结果(在terminal上显示)
如下,不带@echo off
如下,带@echo off,所有的执行的命令都不显示了,显示执行命令后的结果
cd /d %~dp0的含义
有三个部分:
1.cd – 这是更改目录命令。
2https://blog.csdn.net/weixin_/article/details/d – 这个开关让cd改变驱动器和目录。 没有它,你将不得不做cd %~d0 & cd %~p0 。
3.%~dp0 – 这可以进一步分为三个部分:
【1】%0 – 这表示批处理脚本的第零个参数。 它扩展到batch file本身的名称。
【2】%~0 – 在那里解开扩展参数的双引号( " )。
【3】%dp0 – d和p有扩展的修饰符。 d强制添加一个驱动器号并添加完整path。
cd /d %~dp0的意思就是cd /d E: est_path
其中:
~dp :是变量扩充
d :既是扩充到分区号 E:
p :就是扩充到路径 est_path
dp :就是扩充到分区号路径 E: est_path
通过实战进行解释:
1.通常情况下我们要进入其他盘符下的任意目录,需要在CMD窗口运行两次命令:
第一次,进入盘符,第二次进入指定目录
盘符切换:
从D:切换进入E: est_path ,要使用两条命令:
通过使用CD命令,并加入参数 /d ,可以通过一个步骤,直接进入指定盘符下的任意文件夹。
#一个步骤进入E盘下的test_path目录:
由此可见cd /d %~dp0 的意思就是等价cd /d E: est_path
更多语法介绍
选项语法:
~0 - 删除任何引号("),扩充 %0
%~f0 - 将 %0 扩充到一个完全合格的路径名(“f”是file,即文件)
%~d0 - 仅将 %0 扩充到一个驱动器号
%~p0 - 仅将 %0 扩充到一个路径
%~n0 - 仅将 %0 扩充到一个文件名(“n”是name 文件名)
%~x0 - 仅将 %0 扩充到一个文件扩展名
%~s0 - 扩充的路径只含有短名(“s”为Short,短的)
%~a0 - 将 %0 扩充到文件的文件属性(“a”为attribute,即属性)
%~t0 - 将 %0 扩充到文件的日期/时间(“t”time)
%~z0 - 将 %0 扩充到文件的大小(Size 大小)
%~$PATH:0 - 查找列在路径环境变量的目录,并将 %0 扩充 到找到的第一个完全合格的名称。如果环境变量名 未被定义,或者没有找到文件,此组合键会扩充到 空字符串
可以组合修饰符来得到多重结果:
%~dp0 - 仅将 %0 扩充到一个驱动器号和路径
%~nx0 - 仅将 %0 扩充到一个文件名和扩展名
%~fs0 - 仅将 %0 扩充到一个带有短名的完整路径名
%~dp$PATH:0 - 查找列在路径环境变量的目录,并将 %I 扩充 到找到的第一个驱动器号和路径。
%~ftza0 - 将 %0 扩充到类似输出线路的
DIR%0为当前批处理文件
运行结果
延时扩展命令为:
参考《批处理中setlocal enabledelayedexpansion的作用详细整理》:
TEST1.bat:
TEST2.bat
将TEST1.bat中的值传到TEST2.bat中,并显示出来;参考如下实现
TEST1.bat:
TEST2.bat:
类似的还有%1-%9,分别代表传递来的第1-9个参数;为cmd命令行模式传进来的参数
win+r进入cmd命令窗口,打开输入cmd:
1.算术运算:/a表示设置算术运算
优先级使用括号进行
2.重定向操作
3.多名命令运算
4.管道符号
第一个命令A的输出当做第二个命令B的输入
1.基本命令格式
2.批处理文件接收参数
3.批处理注释
使用rem进行注释
使用::进行注释
4.改变cmd窗口文字背景颜色和标题修改
0a表示黑色背景和淡绿色文字
5.查看日期和时间
6.start启动命令
7.
8.任务列表和终止命令
9.文件夹结构命令tree
10.关机命令,计划任务命令at,环境变量设置
查看所有的系统环境变量的命令:在cmd中输入 set 回车。
1.目录浏览dir命令
2.目录新建与删除
mkdir也可以缩写为md
3.目录切换命令cd
. 是当前目录,..是指上级目录
4.目录重命名ren
5.目录拷贝命令copy
复制后进行删除操作
/b表示以二进制模式复制文件
删除指定后缀的所有文件
7.文件剪切命令move
1.if-else结构
使用 pause>nul ,nul相当于空文件,即把这些文字隐去了。其作用与pause基本相同,同样是等待用户按键,区别在于不显示“请按任意键继续.....”
2.判断文件是否存在exists
3.文件判断删除
加括号即可换行
1.for、in 和 do是for语句的关键字,它们三个缺一不可;
2.在 in 之后,do 之前的括号"()"不能省略,do 后可以有括号,且括号内不能有注释
3.%%i 是for语句中对形式变量的引用;
4.for语句的形式变量I,可以换成26个字母中的任意一个,这些字母会区分大小写;
5.in和do之间的command1表示的字符串或变量可以是一个,也可以是多个,每一个字符串或变量,我们称之为一个元素,每个元素之间,用空格键、跳格键、逗号、分号或等号分隔;6.参数说明:/d 仅为目录;/R递归;/L迭代数值范围;/f(F) 打印文件内容
1.循环遍历文件夹名称
2.遍历文件夹下的文件
3.遍历数字操作
4.遍历文件内容操作
1.计算机信息展示
2.交互操作介绍
3.计划执行操作
通过at命令执行计划操作
4.Bat批处理脚本转Exe程序介绍
需要通过对应的工具bat才能转换为exe.
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/do-yfwjc/50464.html