故事背景:公司要批量测试一批开发板,并且每个板子装多个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就是取第一列,刚好就是我们要的设备序列号集合,然后就是遍历它。