二、windows批处理
2.1 批处理简介
批处理就是一个脚本文件
脚本就是文本文件,在文件中包含了多个要执行的命令
批处理的作用:批量、自动、定时去执行一些操作
写批处理的方法:第一步:创建一个文本文件【后缀是txt的文件】
第二步:在文本文件中写入要自动执行的dos命令,然后保存退出
第三步:将这个文件的后缀修改为.bat
2.2 dos命令
1. ECHD
输出一段信息
- 案例:输出“hello hello”
2.变量
变量包含俩个部分:*变量的名字
*变量的值
变量的格式:set 变量名=变量值
例如:定义一个变量,变量名是name,变量的值是jack;再定义一个变量,变量名是age,变量的值是20
使用变量的格式: %变量名% 注意:使用变量的时候,需要给变量前后百分号%。
案例:定义变量保存姓名和年龄,用echo进行输出【其实这个就是拼接有变量的字符串】
3.关闭/打开回显
回显:就是在执行批处理文件的时显示批处理文件中的命令
打开回显: 显示批处理文件中的命令。【默认就是打开回显的】
打开回显的命令:@echo on
关闭回显: 不显示处理文件中的命令
关闭回显的命令:@echo off
echo 命令的第一种用法:echo on 和 echo off echo on表示打开回显
echo off表示关闭回显
echo 命令的第二种用法:echo message 这个很简单,就是显示后面的信息
echo 命令 三种用法: 显示当前回显设置状态,就是显示回显打开或关闭
echo也可以输出文件
4.印当前路径
可以借助内置变量
内置变量:在系统中自动已经定义的变量 例如:%cd%
5. REM
rem 注释
注释的内容,就是一个解释信息【注释的内容是不会当做程序来运行】
作用1:將脚本中某一行或者多少设置为不执行
作用2:解释脚本中的每行内容是作用
注意:可以用"::"代替"REM"
::可以提高执行速度,但是REM的兼容性更好
建议大家用rem注释
6.pause
作用:是将DOS界面暂停关闭
7. title
用来设置dos的标题
8.中文乱码解决方案
例如:使用 chcp 65001 命令行
注意:
方法2:将bat文件使用txt编辑,然后另存为时选择 ANSI 编码格式
点击编码中的转为ANSI编码即可
9. start
用于调用其他程序,如可执行文件exe
运行即可启动qq
注意:1.qq.exe需要和批处理文件在同一个目录中,是为了方便
2.可以将qq.exe放到任意位置,但是在执行的时候,就必须加上路径
3.start在启动的时候,可以启动exe程序,也可以启动bat
10. 读取dos输入
与用户交互:用户可以进行输入,系统会进行输出
此时需要将用户输入的内容保存成一个变量,这里需要用到set标识符,还有参数/p
案例:让用户输入一个ip地址,检查这个ip是否在线
11. 函数
函数本质就是一段代码
通过使用函数,可以实现代码的重复使用,进而可以提高程序的开发效率
定义函数的格式:
函数内容是以 :函数名开始以 goto:eof结束
调用函数就是call:函数名
注意1 :函数要写在程序的最后,否则在重复调用函数的时候,容易出现函数执行了一次,程序就结束的现象,如下例:
执行正常的程序【将函数部分写在最后】
【函数一定要放到goto:eof的后面,否则函数就会被多执行一次
执行异常的程序【将函数部分写在前面】
案例:打印一个菜单
案例:通过函数,让洪湖输入三次姓名和年龄
12. goto
用于函数或者主程序的跳转,通常的写法都是goto:eof
注意:goto:eof 写的位置不一样,效果不同
如果写在函数中,goto:eof 是用于终止函数运行
如果写在主程序中,goto:eof 是用于终止整个程序的运行
13. call
用于调用函数,也可以调用别的bat脚本
14.errorlevel
是脚本内置变量,可以检测上一个命令是否执行成功
- 如果这个变量的值等于0,表示上一个命令执行成功
- 如果这个变量的值不等于0,表示上一个命令执行失败
变量分为俩种
用户自己定义的,也就是用set定义的
系统自动生成的,这种不需要用户set,可以直接使用
例如:
15. for
用于循环:
dir /b 指定目录 这个语法可以用于获得指定目录下的所有文件和文件夹
for /f 遍历指定目录下所有的文件和文件夹 for /d 遍历指定目录下所有的文件夹
for /r 遍历指定目录下所有的文件和子文件夹中的文件
%%i 则是声明的变量,可以是任意的变量名,但变量名前面必须加上两个百分号%%
16. > 和 >>
如果文件不存在,可以创建一个新的文件,然后将命令的执行结果保存到文件中
如果文件已存在,那么就会将文件的原有内容删除,然后将命令的执行结果保存到文件中
16. 屏蔽命令的输出
命令的输出结果有俩种:
- 命令执行正确的输出
- 命令执行错误的输出
如下图所示:加上nul,就不会有输出结果,会把结果存储在nul当中
可以复制文件或者文件夹
案例:将a.txt复制成b.tx
17. del
可以删除文件,自行测试
- del /f 强制删除只读文件
- del /s 从所有的目录下删除指定文件
- del /q 安静模式
18. if 判断
判断的格式1
判断的格式2
案例:让用户输入一个年龄,判断这个年龄是否大于18,大于18显示已成年
判断字符串: == 等于
案例:让用户输入一个IP地址,判断这个ip是否在线