bat 常用

摘要

本文主要对 bat 文件的概念、作用、常用命令以及适用场景四个方面进行简短介绍

概念

1,首先我们要知道 bat 文件在 windows 这个大家庭中是非常实用的
2,bat文件是dos下的批处理文件。批处理文件是无格式文本文件,它包含一条或多条命令。它的文件扩展名为.bat.cmd在命令提示下输入批处理文件的名称,或者双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。入侵者常常通过批处理文件的编写来实现多工具的组合入侵、自动入侵及结果提取等功能(此处我们引用百度词条的相关概念)

作用

bat 文件 又名 批处理文件,从名字我们就可以很清晰的了解到这个文件主要是用来对命令等比较繁琐的事情进行汇总处理使用的

常用命令

介绍常用命令之前,我们先就如何查看帮助文档进行说明
我们可以使用 name /? 方法直接在 命令行查看帮助文档

下面我们就 bat 文件常用的几条命令进行详细解释,对于其它的采用一笔带过方式
常用命令
1,IF
语法格式:

IF [NOT] ERRORLEVEL number command:

IF ERRORLEVEL这个句子必须放在某一个命令的后面,执行命令后由IF ERRORLEVEL 来判断命令的返回值。Number的数字取值范围0~255,判断时值的排列顺序应该由大到小。返回的值大于等于指定的值时,条件成立
实例:

@echo off
dir c:
rem退出代码为>=1就跳至标题1处执行,>=0就跳至标题0处执行
IF ERRORLEVEL 1 goto 1
IF ERRORLEVEL 0 goto 0
Rem 上面的两行不可交换位置,否则失败了也显示成功。
:0
echo 命令执行成功!
Rem 程序执行完毕跳至标题exit处退出
goto exit
:1
echo 命令执行失败!
Rem 程序执行完毕跳至标题exit处退出
goto exit
:exit
pause
IF [NOT] string1==string2 command

string1 和string2 都为字符的数据,英文内字符的大小写将看作不同,这个条件中的等于号必须是两个(绝对相等的意思)
实例:

@echo off
IF "A"=="A" goto 0
:1
echo "进入1号领地"
goto exit
:0
echo "进入外部势力范围"
goto exit
:exit
pause

输出:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oS4uLqx0-1603359344295)(/uploads/python/images/m_383a044d8ef7b7e0f4929c713676045c_r.png)]

IF [NOT] EXIST filename command

判断文件是否存在
filename 此处最好是指定文件的路径
实例:

@echo off
IF EXIST C:\batch\test.bat goto 0
:1
echo "进入1号点"
goto exit
:0
echo "进入0号点"
goto exit
:exit
echo "结束"
pause

文件目录结构:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pCgs2XBS-1603359344300)(/uploads/python/images/m_ad20f3bee913e71685f9eee31ba87750_r.png)]
输出:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6exB0PkA-1603359344310)(/uploads/python/images/m_2a27a983ce57387687d9e2c4f447d19a_r.png)]

2,FOR
关键字:for、in和do是for语句的关键字,它们三个缺一不可
实例:

@echo off
for  %%I in (ABC) do echo %%I
pause

输出:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wugxCC19-1603359344316)(/uploads/python/images/m_0da0dee9e94565b56ed00e8e76692bdd_r.png)]

3,接收键盘输入

set /p startip=开始IP:
set /p endip=结束IP:

实例:

@echo off
set /p startip=开始IP:
set /p endip=结束IP:

echo %startip%
echo %endip%
pause

输出:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3yU5FaU6-1603359344319)(/uploads/python/images/m_08ea39cf0270fa6ab6304b0a8628a75f_r.png)]

4,设置变量
实例:

@echo off
set a="syn"
echo %a%
pause

输出:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E48zVbjV-1603359344327)(/uploads/python/images/m_16b9aa79e455933d19d81b3c000dfb7f_r.png)]
注意:set 设置变量 = 前后不能有空格

5,变量延迟
在介绍变量延迟之前,我们先来了解一下批处理命令的运行原理
批处理读取命令时是按行读取的(另外例如for命令等,其后用一对圆括号闭合的所有语句也当作一行),在处理之前要完成必要的预处理工作,这其中就包括对该行命令中的变量赋值
实例5.1:

@echo off
set a=1
set a=2 & echo %a%
pause

rem "开启变量延迟"
setlocal enabledelayedexpansion
set b=1
set b=2 & echo !b!
pause

输出结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-85h0aawf-1603359344335)(/uploads/python/images/m_55c5a8cbcdf3ddec488e84b4feb7315d_r.png)]

首先,我们观察结果 第一个为 1,第二个为 2。而上面脚本中输出唯一不同的就是 %% 和 !! ,这两个有什么不同。下面我们将从 bat 文件的运行原理进行一个解释
首先,在没有开启变量延迟的时候,由于 bat 文件的执行是按照行来执行的,上一行的设置只能影响该行之后的内容,所以第一个中 b 输出为 1,而不是 2;当使用 setlocal enabledelayedexpansion 开启变量延迟之后,我们就要使用 !! 来输出变量了,此时我们告诉批处理命令在运行时,先给变量赋值,而不是在运行该行过程中赋值

变量延迟启动步骤:

1,使用 setlocal enabledelayedexpansion 命令启动变量延迟
2,使用 !! 输出变量

6,echo: 表示显示此命令后的字符

7,echo off: 表示不显示此命令后的字符

8,@:与 echo off 类似,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)

9,call:在该 bat 文件中调用另一个 bat 文件,若不使用 call 命令会造成调用的 bat 文件执行完毕后不会跳转回该 bat 文件继续执行

10,pause:运行此句会暂停批处理的执行并在屏幕上显示 Press any key to continue… 的提示,等待用户按任意键后继续

11,rem:相当于程序中的注释功能,rem 之后的该行内容不执行

适用场景

cmd下输入一长串命令去执行一条指令,如果以后会经常使用到该条命令,每次进行手动输入比较麻烦且容易输错,这时就可以引进bat文件

常用批处理 bat 程序├─BAT优化│ -禁止修改、写入SYSTEM32目录.BAT│ -让XP不用图片查看器看图(略缩图).BAT│ DEL.JPG.SCR.BAT│ DELTEMP.BAT│ 关闭系统信使.BAT│ 减少非法关机等待扫描时间.BAT│ 删除系统备份文件.BAT│ 卸载INTEL集成显卡如同鸡胁的显面增强.BAT│ 卸载XP内置ZIP.BAT│ 恢复使用XP注册表.BAT│ 注册所有DLL.BAT│ 清除输入法外的所有RUN运行项.BAT│ 禁止修改、写入SYSTEM32目录.BAT│ 禁用危险的默认共享.BAT│ 让XP不用图片查看器看图(略缩图).BAT│ ├─其它类│ 2000XP停止打印.bat│ dir.bat│ sxs.exe 的查杀.bat│ sz.reg转换成reg.bat.bat│ 全盘删除所有文件夹下的_desktop.ini.bat│ 删除大小和类型一样的文件.bat│ 删除所有分区的默认共享.bat│ 将cwindows.复制到当前目录并显示进度.bat│ 打开快捷方式指向的目录.bat│ 批处理读注册表的Run下面的值.bat│ 按扩展名分类.bat│ 显示c盘~z盘.bat│ 枚举当前目录及子目录大小.bat│ 枚举显示.bat│ 查找最新的文件.bat│ 每个目录占用的空间.bat│ 篮球飞人火爆版.cmd│ 结束进程.bat│ 解锁注册表.BAT│ 输出倒文.bat│ 锁注册表.BAT│ ├─系统类│ C盘转换为NTFS格式.cmd│ dos下重启.bat│ guest.bat│ win2000关机命令.bat│ WIN2003 IIS最小权限分配.bat│ winxp修改计算机名.bat│ xp下确定最后的盘符.bat│ 不显示扩展名.bat│ 不显示隐藏文件.bat│ 使用WMI别名获取CPU信息.bat│ 关闭IDE通道检测.bat│ 列举进程.bat│ 判断光驱是否可用.bat│ 判断光驱里有无光盘.bat│ 判断分区格式.bat│ 刷新策略.bat│ 取得硬盘数.bat│ 右键添加bat.bat│ 右键添加打开MS-DOS.bat│ 弹出光驱.bat│ 改变我的文档路径.bat│ 显示扩展名.bat│ 显示用户名.bat│ 显示隐藏文件.bat│ 更改电源管理方式.bat│ 更改盘符.bat│ 更改系统启动菜单的时间.bat│ 查看工作组.bat│ 查看物理内存.bat│ 查看用户是否存在.bat│ 查看电脑硬件信息.bat│ 查看驱动器.bat│ 禁止保留文档记录.bat│ 给每个盘添加卷标.cmd│ 被锁定帐户.bat│ 重命名administrator账号.bat│ └─网络类 ARP本机绑定.bat XP服务优化批处理.bat 中文显示ping结果.bat 断开网络联结.bat 显示网络配置.bat 显示自己的IP.bat 查看网关的MAC地址.bat 查看进程使用的端口.bat 检查网络信息.bat 百度关键字搜索.bat 绑定网关的批处理及预留维护提到.bat 自动改回主页.bat 自定义配置网络ip、网关、dns.bat 网络信息.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值