文章目录
- 一、批处理作用
- 二、如何创建批处理
- 三、批处理语法
一、批处理作用
自上而下成批的处理每一条命令,直到执行最后一条。这里的命令指的是DOS命令,在之前的【黑客常用DOS命令】博客中,我介绍了大量的常用DOS命令。不过我们之前输入命令,只能一次输入一条命令,执行一条。今天要介绍的批处理威力就非常大,一次成批处理多条命令。
批处理文件,我们也通常称为脚本,也可以理解为程序。但是和程序又不一样,程序里面执行的是代码,而批处理里面执行的是命令。另外程序中的代码如果出了bug,一般就会终止执行。但是批处理不会,即使其中某一行命令或者几行命令有错误,它也只会在屏幕上报个错,继续往下执行,直到执行完所有的命令才结束。
后面给大家介绍到Linux的时候,也会介绍到脚本。只不过在Windows系统中叫批处理文件,而在Linux中叫shell脚本。为什么叫shell脚本呢?因为我们在Windows系统中cmd打开的窗口叫DOS窗口,输入的命令叫DOS命令。在Linux中打开的窗口叫shell界面,输入的命令叫shell命令。
注意:这里给大家提个醒,在之前博客中有介绍一个命令叫 assoc,这是修改文件关联性的,这个不要轻易使用在批处理中。
举个例子,如果我们在批处理文件中写入多条修改文件关联性的命令,把常见的扩展名都改了,结果执行完批处理之后,系统中的文件是都失效了,运行不了。但是会发现,再执行批处理,也执行不了了。当你双击执行批处理那一瞬间,其实批处理替你打开一个cmd窗口,在里面执行每一条命令,执行完之后再偷偷关掉。而那个DOS窗口是一个程序,名字是cmd.exe,但是你把所有的扩展名都改了,包括exe后缀名,这样DOS窗口也打不开了,这就导致你想再改回来文件关联性都改不了。电脑相当于彻底完了,除非重装系统,所以不要在批处理中轻易使用 assoc 命令。
二、如何创建批处理
批处理也是一种文件,既然是文件就必须有扩展名,它的扩展名是 .bat
创建方法:新建一个记事本文件,然后将扩展名改为 .bat
三、批处理语法
语法介绍我就直接结合实战来讲,实战的话用的是 Windows server 2003 的虚拟机,这里建议大家:如果是初学批处理脚本,最好使用虚拟机,一旦玩坏了还原快照就行,真机成本太大。
打开虚拟机之后,新建一个文本文档,把后缀名改为 .bat,批处理名字随便起,如下图
注意:批处理文件图标在不同系统中是不一样的,比如 Win10 里面看到的和这个不一样
编辑的话,右键点击文件,在弹出下拉列表中选择【编辑】
接下来开始写,初学者记得一行写一条命令就行,用之前博主介绍的一些常用命令我们先试试。如下命令是在屏幕上输出两行等于号,一行文字,写好之后保存一下。echo 命令的意思就是在屏幕上输出内容,下面演示的常用DOS命令就不再逐一解释,不懂的可以看博主之前的博客【黑客常用DOS命令】
然后关掉编辑界面,双击运行这个批处理文件,什么都看不到,其实是运行了,只是一闪而过。这是因为批处理程序运行时,打开DOS窗口,从上往下依次执行命令,运行完所有命令会自己关掉DOS窗口。执行过程速度很快,所以我们看不到效果,那怎么办呢?接下来用到批处理的第一个语法了。
pause 暂停执行(不管下面有没有命令,批处理执行到这里先暂停)
把这个命令写入刚才的批处理文件中并保存
再双击运行文件,如下图:
可以看到执行完之后页面暂停了,如果要解除暂停,按下键盘任意键。只是看着这个画面,是不是感觉很别扭?
别扭在我们其实只想看到批处理中输出的三行文字,并不想看到这么多其他东西,专业术语就是批处理的执行过程我们不想看到,只想看到结果。也就是隐藏掉执行过程,用到批处理的语法
@echo off 关闭回显(也就是屏蔽执行过程,不作显示。所以我们写任何批处理,记得第一行就要写上这句话,这样整个批处理文件的所有命令执行过程都不会显示出来,只显示结果)
把这个命令写入到文件中并保存
双击运行批处理文件,如下图
这下效果好看多了,只是这个字体和背景颜色不是很好看,不符合黑客的风格,用到之前介绍的DOS命令来修改一下字体颜色和背景,继续编辑文件并保存
一般我们把修改颜色的命令放在批处理第二行,第一行一定是关闭回显的命令,双击运行批处理,如下图
可以看到效果炫酷多了,黑客标配颜色,细细再看界面。发现还是有点low,窗口上面显示 “C:\WINDOWS\system32\cmd.exe”,很明显是程序路径。那这里能不能改成其他名字呢?当然可以,继续使用批处理命令
title 程序窗口名称 该命令是给这个批处理运行之后的窗口起个名字,名称会显示在运行之后的窗口左上方
进入批处理文件,编辑窗口名称并保存。名称这行命令不一定放在颜色命令下面,位置可以随意,但是必须放在回显命令下面
双击运行批处理文件,如下图可以看到窗口名字已经改了
接下来做一个简单的电脑垃圾清理小程序,先看看全部命令
从上往下看,批处理中用到了 “echo.” 这个命令含义如下
echo. 表示空一行(在批处理中如果想要两行内容之间显示时候空一行,则使用 echo.,而不是直接空着这行不写,如果空着不写,批处理只会认为这里没有命令可执行,继续往下走。如果要空多行,则每行都写 echo.)
批处理文件中 “cd C:\Users。。。” 是跳转到该目录,这个目录存放有电脑上的无用缓存文件,需要说明的是这个目录,每个人电脑上位置可能是不一样的,如果要找到这个目录,可以同时按下 win + R 键,在弹出的运行框中输入命令 %temp%,然后回车就可以看到这些缓存垃圾文件所在目录,复制之后替换掉我这里的目录。
紧接着下面这行 “rd . /s/q >nul 2>nul” 命令中,rd . /s/q 这是前面博客中讲过的,专门清空指定目录下所有文件及文件夹。>nul 2>nul 的意思是前面这个清空命令执行后,如果正常执行完毕,在屏幕不输出任何内容,如果执行过程当中出现报错等其他弹窗提示,也不在屏幕上输出任何内容。
命令 >xxx 2>xxx 该语法含义是前面的命令如果正确执行完毕,则输出第一个 > 后面的内容;如果命令执行错误,则输出第二个 2> 后面的内容
该批处理文件运行后效果图如下,等运行完可以回到缓存文件所在目录下就可以发现,垃圾已经清理了(注意:里面有个别文件是需要管理员权限才能删的,若想在真实电脑中使用该批处理,最好右键点击,然后选择以管理员身份运行)
继续再写个整蛊的批处理文件,作用是瞬间让对方硬盘爆满。还是用到之前介绍过的命令,文件名字起的吸引人一点 银行卡密码.bat。全部内容如下:
命令中下面的几行都是用来创建一个个指定内存大小的空文件,后面的内存数字单位是字节,折算下来是4G。这个批处理就是创建7个内存大小都为4G的空文件,目录是在D盘。路径、文件大小、个数自己也可以更改,运行完之后打开D盘看看
这些文件名字和后缀名都可以自己任意创建,更厉害点就是再把这些文件隐藏掉,这样对方只能看到电脑爆满,但是看不到是哪个文件,对于小白来说就只能格式化磁盘了。注意这些批处理命令不要用来恶意攻击他人电脑,自己可以在虚拟机里面操作。如果要瞬间清空这些大文件,可以配合上面的电脑垃圾清理批处理来使用,将其略作修改即可。
上面的批处理更多都是使用之前博客中介绍的DOS命令,接下来继续讲解批处理语法
: 冒号表示划分命令区间,相当于把多行命令划为一个整体的命令块,每个命令块都相当于一个单独的功能
比如下图所示,里面的1,2,3表示命令块的名字,这个名字自己随便取。批处理执行的时候是不会执行这些命令的名字的,只是会识别到,比如遇到 :2,批处理就知道遇见名字为 2 这个命令块了。
有的小伙伴可能会纳闷:分成区块作用是啥呢?其实很简单,本来批处理执行是从上往下的,但是分成区块的话就可以搭配下面介绍的 goto 命令来跳转执行,而不是非要从上往下执行。比如看下面的批处理
文件中第一行是表明下面的代码都是一个区块,区块名叫 d;第二行命令的意思是打开控制台,start 后面跟上文件路径就是打开某文件,跟上网址就是打开某网页,什么都没有就是打开黑色控制台;第三行命令的意思是跳转到区块d;执行完又跳回开始执行,永不停歇。这下大家应该明白了,这个文件的作用就是一直不停的打开控制台,直至电脑死机。我们双击运行看看效果
已经打开了400多个窗口,如果对一些电脑配置低的,一会就会死机,只能按住开机按钮长按关机,再重启,因为鼠标键盘都没用了。所以不建议在真机上运行,在虚拟机上运行,玩坏了直接还原快照,又恢复如初。刚才这个还不是最狠的,我们继续在这个基础上改进,让它每次一开机就执行。
鼠标点击左下角【开始】,点击【所有程序】,点击【启动】,就可以看到启动菜单,所有电脑系统里面包括win7、win10都有这个启动菜单
鼠标右键点击【启动】,在弹出的列表中点击【打开】,可以看到启动菜单的路径
路径如下图
把这个路径复制下来,回到批处理文件中,运用之前介绍的文件复制命令,将我们这个批处理文件复制到启动菜单路径下
路径加上双引号,是因为路径中有空格,避免报错。这样运行就把疯狂弹窗的批处理文件复制到了启动菜单里面,而且继续疯狂弹出窗口,我们不得已就要关机重启,但是重启之后又继续弹出。
只是这里有个问题:这个路径适用于所有用户电脑吗?不可能,因为很多用户名是不一样的,而且不一定是用管理员打开的电脑,再则Windows系统版本也有多种。那我们就需要继续改进这个文件,使之可以通用所有Windows电脑用户。
其实如果看过博主之前文章的应该就知道,这个路径前面的一部分就是用户的家目录所在位置,也就是说我们可以把这个家目录换成一个代表用户家目录的变量名,如下命令所示
里面的 userprofile 代表当前用户的家目录路径,这个变量不是博主定义的哦,是微软的系统一开机就已经定义好了。因为这个是变量名,所以用两个 % 括起来。这样任何 Windows 2003 或者 Windows XP 电脑用户拿到这个文件只要运行,都会产生效果,而且威力巨大。
注意:如果是Windows7或者Windows10系统的电脑,启动菜单路径是 "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
这两个批处理语法也再给大家总结下来
userprofile 这个变量名在微软系统中代表用户的家目录
%变量名% 如果要引用设置好的变量的话,变量名必须用两个 % 包裹起来
注意:再次提醒,博客中教的所有批处理及黑客命令,不要用来恶意损害他人电脑系统,也不要盲目在真机里面使用,以免损坏自己电脑,可以在虚拟机使用。学习的初衷是为了防御未知的黑客攻击,所以以后大家拿到陌生的文件都不要轻易运行,可以先编辑打开里面的内容看看。
再来继续新建批处理文件,名字随便取,这里叫 game.bat。这个批处理实现的功能是可以让用户定时开关机,全部命令如下
先给大家说一下里面涉及的新的批处理语法
set 变量名=变量值 设置变量,如果要引用该变量的话用两个 % 包裹
set /p 变量名=提示性话语 还是设置变量的意思,只是这个变量值不是固定死的,而是需要接收用户从外界的输入,把用户的输入数据作为变量的值
if 条件满足 goto 某命令块 条件判断的意思,if 一般搭配 goto 使用,意为如果条件满足就跳转到指定的命令块
然后来讲一下该批处理的逻辑:命令从上往下执行,先在屏幕上输出菜单界面给用户看,每个数字代表一个功能,然后会提示用户输入自己的选择,根据用户输入的命令做条件判断,如果是哪个数字,则跳转到对应的命令块执行对应命令,执行完之后再跳转到起始菜单窗口,用户继续可以做选择使用,如果用户输入的不是这三个数字中的一个,则屏幕会提示只能输入其中三个数字,继而又跳转到菜单窗口,用户如果输入数字3,则彻底退出程序。
我们来看看运行之后效果图:
普通用户看到上述界面,看着都是一些常规的操作电脑的指令,但是有可能每个菜单指令后面都是一个恶意脚本。比如我们把上述批处理作略微修改,将命令块2里面的取消定时的命令换成一段命令,如果用户输入了数字2并回车,则执行这段命令,但并不是取消定时,而是在开始的启动菜单里面生成一个批处理,该批处理的功能就是上面所讲的疯狂弹窗,这样一旦用户下次开机就开不了了。修改后批处理命令如下
命令中所用的 echo 和 >> 都是之前博客中介绍过的DOS命令,意思就是将一句话输出到指定的文件,如果没有则创建该文件,如果有该文件,则内容输入方式是追加输入,也就是往下一行输入。我们执行该批处理,然后输入数字2回车看看
再点击左下角【开始】,点击【所有程序】,点击【启动】,就可以看到启动菜单里面多个 game.bat 批处理文件。如果用户一旦下次开机,就无法开机。
至此,我们知道了两种把批处理放入启动菜单的方法:1.复制批处理到启动菜单目录下;2.将内容直接写入到启动菜单目录下的批处理文件;