Dos烧录脚本

Dos命令之前更改的太简单,现在加入判断是否进入fasboot模式和判断Android镜像是否存在;代码已经尽量简化成这样,dos命令功能还是比较不好用的,用了一下午的时间。。。

  1 @echo off
  2 
  3 
  4 
  5 
  6 
  7 @set flashpath=Z:\msm8909\out\target\product\msm8909\
  8 @set Dynamic_library_Path=Z:\msm8909\out\target\product\msm8909\obj\lib\sensors.msm8909.so
  9 @set boot_image=%flashpath%boot.img
 10 @set mbn_image=%flashpath%emmc_appsboot.mbn
 11 @set system_image=%flashpath%system.img
 12 @set persist_image=%flashpath%persist.img
 13 @set ramdisk_image=%flashpath%ramdisk.img
 14 @set recover_image=%flashpath%recovery.img
 15 @set cache_image=%flashpath%cache.img
 16 @set Dynamic_library=%Dynamic_library_Path%
 17 @set Dynamic_library_Board_Path=/system/lib/
 18 
 19 ::初始化,下面便是判断是否有文件
 20 @set Image_Index=0
 21 @set Image_Current-path=0
 22 @set Image_Length=8
 23 
 24 @set Image[0]-path=%boot_image%
 25 @set Image[1]-path=%mbn_image%
 26 @set Image[2]-path=%system_image%
 27 @set Image[3]-path=%persist_image%
 28 @set Image[4]-path=%ramdisk_image%
 29 @set Image[5]-path=%recover_image%
 30 @set Image[6]-path=%cache_image%
 31 @set Image[7]-path=%Dynamic_library%
 32 ::初始化
 33 
 34 :LoopStart
 35 
 36 ::清空字符串
 37 @set Image_Current-path=0
 38 
 39 if %Image_Index% equ %Image_Length% goto BeginRun
 40 
 41 for /f "usebackq tokens=1,2,3 delims==-" %%a in (`set Image[%Image_Index%]`) do (
 42     set Image_Current-%%b=%%c
 43 )
 44 
 45 if exist %Image_Current-path% (
 46     @echo 该路径%Image_Current-path%存在......
 47     @echo.
 48 ) else (
 49     @echo %Image_Current-path%
 50     @echo 请确定该文件文件是否存在?如果不存在,请确定路径,打开脚本重新设置。10秒后关闭....
 51     @ping -n 10 127.0.0.1>nul
 52     exit
 53 )
 54 
 55 @set /a Image_Index=%Image_Index%+1
 56 
 57 goto LoopStart
 58 
 59 :BeginRun
 60 @echo 检查Android镜像文件已经完成,请继续下一步......
 61 @echo.
 62 
 63 @echo 1、烧录boot.img
 64 @echo 2、烧录aboot.img
 65 @echo 3、烧录persist.img
 66 @echo 4、烧录ramdisk.img
 67 @echo 5、烧录recovery.img
 68 @echo 6、烧录system.img
 69 @echo 7、烧录cache.img
 70 @echo 8、烧录所有镜像
 71 @echo 9、重新推进sensor.so
 72 
 73 @set /p option=请先设置路径后,再输入要烧录的选项:
 74 
 75 
 76 if "%option%" == "9" (
 77 adb root
 78 adb wait-for-device
 79 adb remount
 80 @echo 重新推进sensor........
 81 adb push %Dynamic_library% %Dynamic_library_Board_Path%
 82 adb reboot
 83 @echo 正在重启...... 5秒后关闭....
 84 @ping -n 5 127.0.0.1>nul
 85 
 86 exit
 87 )
 88 
 89 
 90 ::判断是否进入fastboot模式
 91 fastboot devices>1.txt
 92 set /p message=<1.txt
 93 del 1.txt
 94 if not defined message (
 95     echo 正处于adb mode模式.....
 96     adb wait-for-device
 97     adb reboot-bootloader
 98 ) else ( 
 99     echo 正处于fastboot mode模式.....
100 )
101 
102 
103 @echo.
104 
105 if "%option%" == "1" (
106 @echo 烧录boot.img........
107 fastboot flash boot %boot_image%
108 )
109 
110 if "%option%" == "2" (
111 @echo 烧录aboot.img........
112 fastboot flash aboot %mbn_image%
113 )
114 
115 if "%option%" == "3" (
116 @echo 烧录persist.img..........
117 fastboot flash persist %persist_image%
118 )
119 
120 if "%option%" == "4" (
121 @echo 烧录ramdisk.img..........
122 fastboot flash ramdisk %ramdisk_image%
123 )
124 
125 if "%option%" == "5" (
126 @echo 烧录recovery.img...........
127 fastboot flash recovery %recover_image%
128 )
129 
130 if "%option%" == "6" (
131 @echo 烧录system.img........
132 fastboot flash system %system_image%
133 )
134 
135 if "%option%" == "7" (
136 @echo 烧录cache.img...........
137 fastboot flash cache %cache_image%
138 )
139 
140 if "%option%" == "8" (
141 @echo 烧录所有镜像.............
142 fastboot flash boot %boot_image%
143 fastboot flash aboot %mbn_image%
144 fastboot flash persist %persist_image%
145 fastboot flash ramdisk %ramdisk_image%
146 fastboot flash recovery %recover_image%
147 fastboot flash system %system_image%
148 fastboot flash cache %cache_image%
149 )
150 
151 
152 fastboot reboot
153 @echo 正在重启 请稍后......
154 adb wait-for-device
155 adb root
156 adb wait-for-device
157 
158 
159 @ping -n 5 127.0.0.1>nul
160 adb shell dmesg > kmesg.log
161 @echo kernel log已经导出.....
162 
163 
164 
165 @echo [烧录成功,暂停5秒自动关闭]
166 @ping -n 5 127.0.0.1>nul

其中用到的相应内容有dos命令for循环的使用:

参考博客:http://blog.csdn.net/wh_19910525/article/details/7912440

Bat数组使用的情况:http://www.jb51.net/article/67630.htm

我自己整理的For f中的tokens和delims怎么用?直接拉上百度知道,整理得到的。就不管链接了,贴上我的有道云笔记链接就行了:http://note.youdao.com/noteshare?id=728873fd0d9b1ea50a73aed3d476135e&sub=FD0225FD68AC400C8C909FE85C293202

bat脚本回车命令是echo.

批处理语句判断变量是否为空的方法:http://www.bathome.net/thread-4046-1-8.html

综上所述:脚本好恶心!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏along的开发之旅

程序集版本号,文件版本号及发布版本号管理

在.net框架中和CLR运行时钟引用,如使用程序集的强命名时就会使用. 按照我的理解,你所使用的库如log4net,常见的有2.0和4.0的,那么你下载的库...

511
来自专栏Flutter入门到实战

开发工具总结(6)之Android Studio模板配置详解(提高开发效率必备技能)

版权声明:本文为博主原创文章(部分引用他人博文,已加上引用说明),未经博主允许不得转载。https://www.jianshu.com/p/1fe87050c1...

692
来自专栏生信宝典

关于Python中的__main__和编程模板

在python程序中经常可以看到 if__name__ == ' _ _ main _ _'的判定,下面来解释下。 首先在python交互式界面中输入以下程序,...

16210
来自专栏菩提树下的杨过

Silvelright:ListBox无法用Tab顺序切换内部元素焦点的解决

默认情况下,Silverlight自带的ListBox控件如果内部有多个TextBox,用户无法用键盘上的Tab键,在ListBox内部的TextBox之间切换...

19210
来自专栏帘卷西风的专栏

使用Cmake生成跨平台项目编译解决方案

    项目最近有需求在windows下面运行,我花了几周时间将linux的服务器移植到windows下面,目前已经能够正常运行服务器,目前又有了新需求,两边的...

1062
来自专栏水击三千

Android 简单的代码混淆

Android的代码混淆是开发者需要了解的相关知识,它能够防止android应用程序的反编译。因为android程序多数是java语言开发的,而java代码很容...

2827
来自专栏疯狂的小程序

像 React Native 开发 APP 一样,用wn-cli 开发 weapp (微信小程序)

wn-cli 像React组件开发一样来开发微信小程序

3546
来自专栏文大师的新世界

8. 遇到不可抗力的自然灾害

之前提到过尽量不要改名,涉及到的改动比较大,会遇到各种不知名错误,趁着本次改动详细记录一下:

463
来自专栏无原型不设计

[桌面版] 在 Mockplus 2.1 (预览版)中使用图片轮播

1、创建移动项目 2、从交互分类中添加一个图片轮播组件 3、点击图片轮播组件上小工具条上的图片选择按钮 4、选择一张或多张图片。(这里只会把对话框中勾选...

2608
来自专栏技术小讲堂

ASP.NET5之客户端开发:Grunt和Gulp构建工具在Visual Studio 2015中的高效的应用Grunt和Gulp使用Grunt准备项目配置NPM配置Grunt集成起来监测文件变化与V

Grunt和Gulp是Javascript世界里的用来做自动压缩、Typescript编译、代码质量lint工具、css预处理器的构建工具,它帮助开发者处理客户...

2647

扫描关注云+社区