ADB 为批量设备安装批量APK

故事背景:公司要批量测试一批开发板,并且每个板子装多个app,考虑到要做很多重复工作,于是就查询相关的批量操作代码,CS某N有一个,不过是基于linux系统的,并且,收费,我就很气愤,(再次吐槽一下CS某N,文章都是大家写的,文件都是大家传的,你用得着收那么高的费用吗?滋生那么多文件搬运工是不是你们的责任啊?)于是我就自己折腾两天整了一个,测试了一下,效果很不错。有需要的直接拿走。


@echo off
echo --------------------------------------------------------

echo Get devices
adb devices > devices.txt
type devices.txt

echo -------------------------- INSTALL START ---------------------

for /f  "skip=1 tokens=1 delims=    " %%i in (devices.txt) do (

    echo START INSTALL %%i
    for %%j in (*.apk) do (   
            echo INSTALLING: %%j TO DEVICE  %%i
            adb -s %%i install -r %%j
    )

)

del devices.txt
echo --------------------------- INSTALL END ----------------------
pause

对以上代码做个解释哈
1、读取当前连接的设备列表,并存入文件,待后续使用(adb devices > devices.txt),type devices.txt 只是在预览一下读取到的设备列表,不想看可以不要;
2、从devices.txt 读取设备列表,for后面的 /f 表示后面从devices.txt文件中读取内容,如果没用 /f 那么读取的结果就是 devices.txt ,也就是文件名;
3、截取字符集,skip=1是跳过第一行,delims后面是一个tab符,表示以tab符分割指定字符串,tokens=1意思是取以tab符分割后的元素的第一列,比如:

List of devices attached
0123456789ABCDEF        device
2884W180540051  device

上面就是我的设备列表。skip=1,就会从第二行开始处理,delims=tab符,得到的结果如下:

----------------------|-------------------------------
0123456789ABCDEF      |          device
----------------------|-------------------------------
2884W180540051        |          device
----------------------|-------------------------------

分成了两行两列,tokens=1就是取第一列,刚好就是我们要的设备序列号集合,然后就是遍历它。

你可能感兴趣的:(ADB 为批量设备安装批量APK)