使用WINDOWS在多个连接的设备上安装adb

时间:2015-11-26 09:19:25

标签: android bash batch-file cmd adb

我正在寻找一种解决方案,使用Windows在所有连接设备上的所有文件夹中安装所有apks。 我到处寻找,我只能找到Bash解决方案。

这是我遇到的最好的bash:

通过这个网站 http://engineering.meetme.com/2014/07/quick-tip-how-to-install-or-uninstall-apks-on-multiple-android-devices-with-just-one-command/

#!/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文件将在哪里)。 然后运行安装...

真的很感激,如果有人知道如何提供帮助。感谢。

1 个答案:

答案 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; (