我正在寻找一种解决方案,使用Windows在所有连接设备上的所有文件夹中安装所有apks。 我到处寻找,我只能找到Bash解决方案。
这是我遇到的最好的bash:
#!/bin/bash
# Script adb+
# Usage
# You can run any command adb provides on all your currently connected devices
# ./adb+ <command> is the equivalent of ./adb -s <serial number> <command>
# Examples
# ./adb+ version
# ./adb+ install apidemo.apk
# ./adb+ uninstall com.example.android.apis
adb devices | while read line
do
if [ ! "$line" = "" ] && [ `echo $line | awk '{print $2}'` = "device" ]
then
device=`echo $line | awk '{print $1}'`
echo "adb -s $device $@ ..."
adb -s $device $@
fi
done
现在我想知道如何将其转换为bat文件? 有谁知道怎么办这样的事情......
我可以手动执行此操作: 我运行adb设备,然后复制所有ID并替换下面的代码
ECHO Running Bat script
@ECHO OFF
:: comment
adb -s <DEVICE_ID> install MyApk.apk
adb -s <DEVICE_ID> install MyApk2.apk
adb -s <DEVICE_ID> install MyApk3.apk
但我需要自动化这个过程。
我需要学习如何将所有连接的devices_id作为上面的bash代码。然后获取文件夹中的所有.apk文件(这个bat文件将在哪里)。 然后运行安装...
真的很感激,如果有人知道如何提供帮助。感谢。
答案 0 :(得分:3)
最后,设法正确实现它(将所有apks从当前文件夹安装到所有连接的设备):
echo off
setlocal EnableDelayedExpansion
for /f "tokens=*" %%f in ('C:\android\sdk\platform-tools\adb.exe devices') do (
for /r %%p in (*.apk) do (
set devicestr=%%f
set apk=%%p
if "!devicestr!"=="!devicestr:List=!" (
for /f "tokens=1" %%d in ("!devicestr!") do (
set deviceid=%%d
echo !deviceid!
echo !apk!
C:\android\sdk\platform-tools\adb.exe -s !deviceid! install !apk!
)
)
)
)
此行删除&#34;已连接设备列表&#34;:
如果&#34;!devicestr!&#34; ==&#34;!devicestr:List =!&#34; (