收藏文章 楼主

编写简单的bat刷机脚本(二)

版块:干货/教程   类型:普通   作者:Anya1014   查看:187   回复:0   获赞:0   时间:2024-11-17 16:30:50
原文地址:https://www.coolapk.com/feed/45513027?shareKey=NDViZDA1ZTc5NjI1NjcyYWI0Njg~&shareUid=9253990&shareFrom=com.coolapk.market_14.5.1 已获得原作者转载授权(有删改)


上一篇教程带领大家编写了一个最简单的刷入boot脚本。这次我们来为他增加一个恢复官方boot功能。

本教程是在上一篇教程的基础上编写的,如果还没有看上一篇,建议先去看。

-

【命令简介】

-

本次介绍的命令如下:

cls:清空屏幕显示(内部命令)

goto:跳转到指定标签(内部命令)

set:设置变量及其值(内部命令)

if:如果...就...,条件判断语句(内部命令)

-

【变量】

-

Image

bat里的变量用%%括起来,比如%abc%指的就是变量名为abc的变量。注意:变量名不能以数字开头,不能带有空格等特殊字符,一般来说使用字母,数字和_就足够了。

set命令是设置变量及其值的命令,我们先来简单体验一下set和变量的用法:

Image

其中“abc”是变量名,“123”是变量abc的值,“=”是赋值的意思(而不是相等)。变量的值可以随时改变,如图:

Image

-

【标签】

-

bat脚本是从上到下逐行执行的,但单纯的逐行执行又无法满足复杂的需要,所以可以在脚本里添加“标签”以用来跳转到其所在位置执行。标签独占一行,由英文冒号“:”起头,后面跟标签的名字。需要跳转的时候,使用“goto 标签名字”即可。

注意:如果goto了不存在的标签名字,脚本会直接闪退。

Image

如图所示,使用goto跳转到标签ABC,跳过了echo 123的执行。


-

【实操】

-

这是我们上一次的成果

Image

现在我们的脚本只有一个刷入boot功能,刷入boot一般是为了Root或刷入第三方内核,但如果刷入后用户手机不开机,那我们就需要增加一个恢复官方boot功能。首先将一个同版本的官方boot放到同文件夹里,为了和boot.img区分,将他重命名为boot_official.img。

Image

既然要增加功能,我们就需要增加一个选择菜单。菜单的显示部分当然是用echo来做,如图。

Image

这里有一点小问题,就是如果想echo空行,就写“echo.”而不是“echo”,否则会显示“echo已关闭”的提示。

下面我们继续给这个菜单写选项和判断。这里就要用到set命令,我们来继续编写:

echo 请输入序号并按Enter继续:

set /p choice=

(choice是选择的意思,一般用choice做选项的变量名)

Image

set /p是set命令的一个用法,前面讲了set xxx=xxx是给xxx赋值,那加上/p参数是什么效果呢,加入/p后,set会等待用户输入完成并按下Enter键,之后把变量的值设置为用户输入的内容。也就是说,set /p是一个和用户交互的工具。比如我输入1按下Enter,结果就是变量choice的值被设为1。通过set /p,我们可以获得用户输入的内容并做下一步判断。

那么现在我们将用户输入的内容赋值给了choice变量,下面我们就要根据%choice%的值来判断该进入哪一个功能。继续编写:

if "%choice%"=="1" goto flashboot

if "%choice%"=="2" goto recoverboot

其中“if”是“如果”,“==”是相等(注意之前说=是赋值,==才是相等),前面用""括起来的是变量choice的值,后面同样用""括起来的是要比较的值。再后面就是if成立之后要执行的跳转命令了。总体来说,以上脚本的含义就是:如果用户输入的是1,则跳转到flashboot标签,2则跳转到recoverboot标签。这样就实现了根据用户的选择去执行不同的功能。

标签还没加,也一起加上。

Image

上次我们完成的是刷入boot部分功能,现在可以把那一部分脚本放到:flashboot下面。同样的,也写一份刷入boot_official.img的脚本放到:recoverboot下面。

Image现在基本的功能已经完成了,但我们还有一个BUG需要修复:我们设定了用户选1和选2时候的跳转,那如果用户输入3或者其他会怎么样?两个if都不成立,脚本会继续向下执行,也就是走到flashboot部分。这显然是不应该发生的,所以我们需要写点东西来“兜底”。一般的处理方法就是让他返回菜单。如图:

Image

但是这样菜单会重复显示,影响观感,所以在菜单显示前加入cls以清空屏幕。

Image

 
回复列表
默认   热门   正序   倒序

回复:编写简单的bat刷机脚本(二)

Powered by HadSky 8.4.17

©2015 - 2025 AndroidShell

您的IP:216.73.216.50,2025-05-25 14:18:48,Processed in 0.04469 second(s).

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息