—— 网黑哥 长文章警告,建议边看边做。 根据小伙伴们的留言,现推出批处理制作教程。 注意:这篇文章的后半段不太好理解,需要反复自己尝试。只可意会不可言传。 批处理是什么呢?举个上次的例子,我想把 E 盘 A 文件夹下的所有 TXT 文本删除掉,首先我们要把盘符切换为 E,其次再利用 cd 命令进入 A 文件夹,再利用 del 命令和通配符将 A 文件夹下的所有 TXT 文本删除掉。 假如我们经常重复同样的操作,是不是很麻烦。这时,批处理文件就派上用场了。我们只需提前将我们要执行的命令输入到记事本中,生成一个批处理文件。下次再执行时只需打开批处理文件就可以自动执行这些命令了。 如果要实现以上操作就要这样做: 新建一个文本文档打开,将我们要执行的命令输入进去。注意每一行一个命令,不可重叠。 保存我们的文字,并将文本文档的文件后缀 TXT 改为 BAT 或者 CMD。 到此我们就完成了一个简单的批处理文件的制作,像这样。 假设你将批处理文件放在了 E 盘的 A 文件夹下,那么就不用执行路径的操作了,因为批处理文件放在哪个地方它就对哪个目录进行操作。 这就是批处理的制作,每一行一个命令,命令按从上到下的顺序依次执行。(这个很重要)其次,我们不需要像 VScode 或者 Atom 这样的代码编辑器,只需新建一个 txt 文档即可。当然也推荐使用第三方的文本编辑器,因为这些编辑器在你编写命令的时候会自动提示命令,节省时间。 再来啰嗦一下顺序的问题,批处理文件执行的顺序是从上到下依次进行,所以在设计自己的批处理文件时,要想好在执行某个命令之前还需要执行哪些操作。 比如上面的例子,在执行 del 命令之前,要先用 cd 命令将路径调到批处理文件所在的目录,再执行 del 命令将批处理文件所在目录下的 txt 文件全部删除。当然也不能顾前不顾后,看情况而定。 我们也可以用批处理实现微信多开,这个网黑哥之前讲过,在这里重新说一下。 微信任意多开 首先我们得知道我们的微信装在什么地方,首先对着微信的快捷图标右键-属性。 我们可以看到目标和起始位置。目标就是微信程序 Wechat.exe 所在的绝对路径 + 文件名,而起始位置就是微信程序 Wechat.exe 所在的绝对路径。我们只需要做一个启动 Wechat.exe 的批处理就好了。 这里介绍一个命令:start 我们在 CMD 中输入 start /? 就可以看到 start 命令的用法(由于用法介绍过长,这里就不截图了)start 就是开始的意思,我们可以看到 start 可以启动应用,目录,甚至可以设置最大最小化。这里我们只用 start 的基本用法就行了就行了。 首先补充一下上节课路径切换的知识: /D 上节课介绍 cd 命令切换路径,可是盘符切换是一大难题。今天,他来了。/D 命令意思是加文件路径。这里就可以直接使用绝对路径了。比如进入 E 盘的 A 文件夹。我们只需要输入以下命令。 cd /d E:\A 这里还得说一下路径的问题,比如我们要进入 C:\Program Files (x86) 可以看到路径里面存在空格。执行会出现如下情况: 那怎么解决呢? 我们只需要在路径两边加上引号就可以了。 最后的代码如下: cd /d "C:\Program Files" 在 start 命令中 /d 同样适用。毕竟我们得告诉可执行文件在哪里。还拿微信举例子。 首先我们输入 start /d,再在后面加上微信的起始位置,由于路径中带空格,我们需要加引号。最后加上可执行文件名称:WeChat.exe。 最后代码如下: start /d "C:\Program Files (x86)\Tencent\WeChat\" WeChat.exe 可是我们要多开,比如我们要开两个,我们在下一行再次输入相同内容即可。 如果想要任意多开,那就多复制几行命令即可。 多学一点 简单的介绍完了,下面介绍一些进阶的东西。 这是我之前制作的一个批处理文件,动用了多个外部程序来实现下载视频的功能,我们可以看到屏幕上显示了所有视频下载引擎的名称,编号,适合的下载网址等。以及让用户输入想要选择哪个下载引擎的输入框(其实不是框,暂且这么叫。) 那么这是怎么实现的呢,下面我将为大家一一讲解。 首先当然是给大家介绍一下批处理所用到的一些指令。 ECHO echo 翻译过来就是回声的意思在 DOS 中 echo 起到回显的作用。比如上面的例子在执行时是这样的。 可以看到在运行的同时,命令自身显示了出来。个人用还好,但是如果你这个批处理文件是给客户制作的,是不是不太美观。所以我们可以把它关掉。 echo on 是打开回显,echo off 则是关闭回显。(不懂得把英汉词典拿出来) 我们需要在批处理文件的开头插入这段命令。 之后执行就看不到命令的显示了。 但可以看到 echo off 这个命令还是被显示出来了。因为是 echo off 之后的命令才被关闭了回显。这时@就派上用场了。@的作用是关闭这一行命令的回显。所以,我们只需要在 echo off 的前面加一个@就行了。(不用加空格!!!!) 之后再运行就看不到了 当然,echo 的作用不止这一个,echo 还可以显示文字。(和 echo off 无关)比如我想在批处理文件中显示“网罗灯下黑”这一段文字,我们只需要输入 echo 网罗灯下黑就可以了。 执行一下。 提示,部分朋友运行可能会出现如下情况。 可以看到中文乱码了,(这种情况常出现在用第三方编辑器编辑的批处理文件)所以这是编码问题。这是一个玄学问题。。。。 这里说一下编码问题。TXT 文档的默认编码模式为 ANSI。我们的计算机有多种语言版本。比如英文版。简体中文版等。就拿中文版来说,我们的计算机默认的编码是支持简体中文的,这就是为什么我们用 ANSI 编码不会乱码。 而如果你把这个批处理文件拿到英文版操作系统上去运行,他就乱码了。由此说明,ANSI 并不是特定字符编码,他会随着操作系统的改变而改变。(ANSI 编码只存在于 Windows 系统) 那这怎么办呢?当然是改变编码咯。这里就要介绍一个新命令了。 CHCP 我们再 CMD 中输入 CHCP /? 就可以看到 CHCP 的作用。 单独输入 CHCP 就可以显示当前 CMD 使用的编码。比如我的就是 936(简体中文)。 虽然在自己的电脑上没问题,但在别的电脑上就不一定了。 那我们怎么修改呢?只需输入如下命令: chcp+ 编码代号 比如,chcp 936 就将当前的编码切换到简体中文了。 顺便写几个编码号: 65001 UTF-8 代码页 950 繁体中文 936 简体中文默认的 GBK 437 MS-DOS 美国英语 这时再打开就显示正常了。 这里再插一嘴,很多朋友会发现程序执行完就关掉了,这时只需在程序末尾插入 pause(暂停)就可以出现按任意键继续的显示了。 然后再说一下文字排版问题,就像上面的图片一样,我给文字加了个边框。但其实就是 echo 后面加了一堆等于号和加号。部分同学用第三方编辑器做出来后发现文字错位的情况。解决方法也很简单,空格。差多少补多少。 还有的同学觉得自己写的文字太紧凑就 echo 后面什么也不加空了一行。结果显示。
所以 echo 后面必须加东西,如果真想隔一行就拿点代替。如: echo.SET IF GOTO :% 这五个命令必须连着一起讲。如果你是高中毕业生,数学中有一单元讲的是程序框图,如果你那里学的好那么这对你不叫事。 举个例子,你是一位老师,你班里面有 AB 两个学生,你判两份试卷,A 得了 99 分,B 得了 88 分,而这次考试决定分班,考 99 分的 A 分到了 1 班,考 88 分的 B 分到了 2 班。这就是这几个命令的意思下面我详细讲一下。 首先 set 是设置的意思,有两种主流用法,一个是 /A 另一个为 /P。这里只讲解 /P 的作用。根据个人理解,/P 就是设置变量的作用。 假设我们设置一个变量,并让用户为其赋值。做法如下: set /p 变量名称 = 提示用户内容 (这里用一个等号,等号后面是提示用户的内容,直接显示在 CMD 中,之前的不显示) 就像 A 同学想知道自己分到哪个班一样,查询系统提示要 A 输入自己的分数。小明输入 99 就等于为分数这个变量赋值为 99。 比如我将分数变量的名称设置为 fs,在界面提示用户输入自己的分数。 set /p fs= 请输入您的分数 用户可以输入任何值,如 1 2 3 4 5 a b c 。。。。 其次就是 if ,goto 和: 这三个命令了 if 我们可以理解为如果,goto 可以理解为则。而 : 我们可以理解为一个标签。而 % 变量 % 用来表示变量。(前面是设置变量) 比如校方想要考 99 分的同学进到 1 班 if %fs%==99 goto 1(这里用两个等号) 变量还可以在进行利用 比如如下效果 set /p fs= 请输入分数 if %fs%==99 goto 1 :1 echo 恭喜你考了 %fs% 分,被分到 1 班 pause 再然后就是标签的设置了,其实很简单。比如 A 输入 99 后,程序需要告诉用户你被分配到了 A 班。上面的 goto 1 中的 1 只是标签的名称真正的标签写法为 :标签名称 比如上面的 goto 1 就是转到名为 1 的标签并执行 1 标签的内容。 那么这个标签应该这样写: :1 echo 恭喜你被分配到 1 班。 我知道很多小伙伴看到这里很迷茫,下面我就做一个实例来让大家理解。 假设我想做一个程序,名为文件删除器。可以批量删除 TXT 文件或者 DOC 文件。 首先我们把配置得弄好。首先将批处理编码锁定,其次关闭回显,然后做一个像样子的界面。 我是这样做的。 首先我将批处理的文字编码锁定在了 936(简体中文)然后我关闭了回显。其次我拿字符和文字简易的做了一个界面,让用户知道这个批处理文件是干嘛的。以及使用的注意事项。 执行起来是这样子的。 可以看到文字错位了,这时候我们就要用到空格大法了,缺多少,补多少。 效果如下: 看起来好多了,然后我们就要到了让用户选择的时候了。这时就得设置变量条件语句和标签了。 首先我们得让用户知道,输入什么值会获得什么功能。然后再让他们输入。 我是这么做的: 可以看到我先用 echo 命令告诉了用户你输入什么值会获得什么功能,其次我设置了一个名为 A 的变量。 执行起来是这样子的: 其次就是设置条件语句和标签了。 首先我得想一下给这两个标签起一个什么名字,干脆就叫 txt 和 doc 吧。 我是这样做的。 首先如果用户给 A 变量赋值为 1,则转到 txt 标签,并执行 txt 标签下的内容。 如果用户给 A 变量赋值为 2,则转到 doc 标签,并执行 doc 标签下的内容。 当然,这里还可以输入 345 等任何字符,可条件语句中没有设置,这时会出现错误。批处理会自动执行条件语句下面的第一个命令。为了以防万一,我们可以将设置变量的变为一个标签,名为 B。这样当用户输入错误时可以回到变量设置。 具体做法请看下图: 好了,其实这一部分的知识并不太好讲。因为变动性很大,只能作为参考,真正的批处理制作还得多靠自己的探索。如果大家有什么疑问可以在评论区提问,我会集中回答。 关于批处理命令,虽然说现在用的比较少,不过只要你玩电脑,这个迟早都会接触到,了解一些批处理的相关知识,起码可以看懂这些命令。 这篇文章,投稿的小伙伴花了不少心思来写,完成度很高,有讲解,有实操,而且很容易懂,对这个感兴趣的同学建议收藏后慢慢细看。 感谢作者,最后别忘了「一键三连」。 |
|