cube

整理一些比较常用到的Android批处理脚本(.bat 文件)

工作中需要频繁、大量的对Android终端进行各种操作,每次都敲adb命令实在是太糟心了,所以就将一些简单的命令写成了相对比较通用的批处理脚本,可以直接拿来用,省事啦~~ 当然缺点就是 脚本用的时间久了,再用命令就有点生疏了……

下面几个脚本建议用的时候根据自己的实际情况进行修改

1. 获取系统信息

功能说明:读取手机信息存至文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@ECHO OFF 
ECHO [等待插入手机...]
adb wait-for-device
ECHO [读取手机信息]
ECHO -------------------------------
adb shell cat /system/build.prop>%~dp0\phone.info
FOR /F "tokens=1,2 delims==" %%a in (phone.info) do (
IF %%a == ro.build.version.release SET androidOS=%%b
IF %%a == ro.product.model SET model=%%b
IF %%a == ro.product.brand SET brand=%%b
IF %%a == ro.build.id SET id=%%b
IF %%a == ro.product.cpu.abi SET cpu=%%b
IF %%a == ro.board.platform SET platform=%%b
IF %%a == ro.product.manufacturer SET manufacturer=%%b
IF %%a == ro.build.version.sdk SET sdk=%%b
)
del /a/f/q %~dp0\phone.info
ECHO.
ECHO.手 机 品 牌: %brand%
ECHO.手 机 型 号: %model%
ECHO.版 本 号: %id%
ECHO.Android版本: Android %androidOS%
ECHO.C P U 版 本: %cpu%
ECHO.S D K 版 本: %sdk%
ECHO.主 板 平 台: %platform%
ECHO.制 造 商: %manufacturer%
ECHO.-------------------------------

ECHO.手 机 品 牌: %brand%>"%~dp0\result\Phone_%model%.txt"
ECHO.手 机 型 号: %model%>>"%~dp0\result\Phone_%model%.txt"
ECHO.版 本 号: %id%>>"%~dp0\result\Phone_%model%.txt"
ECHO.Android版本: Android %androidOS%>>"%~dp0\result\Phone_%model%.txt"
ECHO.CPU 版 本: %cpu%>>"%~dp0\result\Phone_%model%.txt"
ECHO.SDK 版 本: %sdk%>>"%~dp0\result\Phone_%model%.txt"
ECHO.主 板 平 台: %platform%>>"%~dp0\result\Phone_%model%.txt"
ECHO.制 造 商: %manufacturer%>>"%~dp0\result\Phone_%model%.txt"

ECHO [暂停15秒自动关闭...]
ping -n 50 127.0.0.1>nul
@ECHO ON

运行截图:

执行结果:执行之后会将读取到的结果以txt存储到该脚本所在目录下的result文件夹中,并以“Phone_ + 手机型号”命名

2. 终端截图

功能说明:将终端当前界面截图保存至电脑指定路径下

代码部分:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@ECHO OFF      
ECHO.[快速手机截屏]
ECHO.-------------------------------
ECHO.[Exce ] 手机截屏
adb shell screencap -p /sdcard/screen.png
ECHO.[Tips ] 拷贝截屏图片至电脑
adb pull /sdcard/screen.png "%~dp0\ScreenShot\screen.png"
ren ScreenShot\screen.png "%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.png"
ECHO.[Tips] 未删除终端screen.png文件
::adb shell rm /sdcard/screen.png (若需在截图后删除终端的图片文件,则)
ECHO.[打开截图目录]
explorer "%cd%\ScreenShot"
ECHO [暂停3秒自动关闭...]
ping -n 3 127.0.0.1>nul
@ECHO ON

运行截图:

执行结果:运行过程与提示一致,之后会直接打开截图目录,目录为该脚本所在路径下的ScreenShot文件夹,文件名为截图时间

3. apk信息查看

功能说明:直接将apk拖动至bat文件上 即可查看apk文件的详细信息,如包名、版本、版本号等

代码部分:

1
2
3
4
5
6
7
8
@ECHO OFF  
ECHO [查看APK包信息]
ECHO -------------------------------
ECHO aapt dump badging %~nx1
aapt dump badging %1 > %~dp0result\%~n1.txt
ECHO [暂停3秒自动关闭...]
%ping -n 3 127.0.0.1>nul
@ECHO ON

执行结果:运行完成后,会将apk信息以txt的形式存储在本地,路径为该脚本所在路径下的result文件夹中。

以百度网盘apk为例:

第一行信息分别为apk包名、版本号、版本。下面还有其它的很多信息,需要的自行百度。

4. 安装/卸载/替换apk

功能说明:通过命令快速安装/卸载/替换apk

代码部分:
安装apk:

1
2
3
4
5
6
7
8
9
10
@ECHO OFF
ECHO [安装APK]
ECHO -------------------------------
ECHO [等待插入手机...]
adb wait-for-device
ECHO [安装] %~nx1
adb install -r %1
ECHO [暂停5秒自动关闭...]
ping -n 5 127.0.0.1>nul
@ECHO ON

卸载apk:(其实卸载还是直接在终端上操作比较快哈)

1
2
3
4
5
6
7
8
9
10
11
@ECHO OFF
ECHO [卸载APK]
ECHO -------------------------------
ECHO [等待插入手机...]
adb wait-for-device
ECHO [卸载] com.baidu.netdisk
::(apk包名,以百度网盘为例,获取方式参考上一个脚本)
adb uninstall com.baidu.netdisk
ECHO [暂停5秒自动关闭...]
ping -n 5 127.0.0.1>nul
@ECHO ON

替换apk:

替换时需要区分两种情况,一种是替换前版本较低,另一种是替换前版本较搞

当替换前版本低时,直接用install -r 命令安装即可;当替换前版本较高时,就需要先卸载旧版本,再安装新版本才行了,否则会报错,无法安装

1
2
3
4
5
6
7
8
9
10
11
12
13
@ECHO OFF
ECHO [安装APK]
ECHO -------------------------------
ECHO [等待插入手机...]
adb wait-for-device
ECHO [卸载] com.xigu.uct.ui
::(apk包名,以我测试用的apk为例,获取方式参考上一个脚本)
adb uninstall com.xigu.uct.ui
ECHO [安装] %~nx1
adb install -r %1
ECHO [暂停5秒自动关闭...]
ping -n 5 127.0.0.1>nul
@ECHO ON

执行结果:安装/替换时需要将apk文件拖动至脚本上,然后释放即可直接执行;卸载时修改apk包名后直接执行即可。

5. 导出日志

功能说明:快速导出终端缓存区日志

代码部分:

1
2
3
4
5
6
7
8
9
10
@ECHO OFF   
ECHO.[导出logcat日志]
ECHO.-------------------------------
adb logcat -d>"%~dp0\log\%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.log"
ECHO. 导出完成!
ECHO.[打开日志目录]
explorer "%cd%\log"
ECHO.[暂停3秒自动关闭...]
ping -n 3 127.0.0.1>nul
@ECHO ON

执行结果:缓存区日志会以txt格式存储在本地log文件夹中,以当前时间命名,且执行完成后会立即打开日志目录

暂时先写这么多,有新的再补充~

备忘一下:补充关于批处理脚本的一些代码说明。

例行撒花✿✿ヽ(°▽°)ノ✿