bat批处理之批量安装卸载apk

  • Post author:
  • Post category:其他

        工作中遇到的需求,要安装多个apk,所以就搜索资料资写了批量安装脚本,当然要安装就要卸载,顺便也写了个卸载脚本。
        安装脚本内容:

@echo off  
setlocal EnableDelayedExpansion
title install apks
color 0a
:: 重启adb 保证能顺利连接  
adb kill-server  
adb start-server  
adb wait-for-device 
set ApkPath=%cd%\apks
cd %ApkPath%  
set count = 0
for /R %%s in (*.apk) do (
    ::要使用引号来包括apk的路径,不然adb install语法报错  
    set /a count +=1
    echo 正在安装第 !count! 个apk:
    adb install “%%s”  
    echo ————————————————
)  
  echo ***********安装完成***********
pause 

       卸载脚本内容:

@echo off  
setlocal EnableDelayedExpansion
title uninstall apks
:: 重启adb 保证能顺利连接  
adb kill-server  
adb start-server  
adb wait-for-device
set ApkPath=%cd%\apks
cd %ApkPath% 
for /R %%s in (*.apk) do (
    aapt dump badging %%s  > %cd%\2.txt
    findstr “package” %cd%\2.txt  >> %cd%\1.txt

del %cd%\2.txt
:: 每行以空格为分割,获取第二个元素
for /f “tokens=2 delims= ” %%s in (1.txt) do (  
   echo %%s >> 2.txt
)
 del %cd%\1.txt
 :: 每行以=号为分割,获取第二个元素,并且去除单引号’,获取最终的包名
for /f “tokens=2 delims==” %%s in (2.txt) do (  
   set s1=%%s
   set s1=!s1:’=!
   echo !s1! >> 3.txt
)
del %cd%\2.txt
for /f %%s in (3.txt) do (  
    adb uninstall %%s
)
del %cd%\3.txt
echo ***********卸载结束***********
pause

       使用说明:
       1、使用前提,安装了jdk和sdk,因为卸载的时候使用了aapt.exe,所以还需要把aapt.exe所在文件目录路径设为全局变量;
       2、新建文本文档,分别添加上述两个脚本并保存,扩展名txt修改为bat;
       3、把需要安装的apk放在apks文件夹下,安装和卸载时把apks文件夹分别拖拽到上述bat文件上即可【apk的名称不要含有中文字符,否则安装会报错Failure [INSTALL_FAILED_INVALID_URI]】。
       4、脚本内容可根据自己的需求做修改。

   


版权声明:本文为yunfei_原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。