本帖最后由 went 于 2020-11-29 19:25 编辑
2.应用一键备份,多开即可实现多线程备份(65001代码页,脚本不能有中文)
adbPath = ADB工具包文件夹(adb+aapt)
backupPath = apk备份文件夹- @echo off & chcp 65001 & cls & cd /d "%~dp0"
- setlocal enabledelayedexpansion
- REM adb tool path
- set "adbPath=G:\Desktop\adb"
- REM backup path
- set "backupPath=G:\Desktop\apk"
- mkdir "%backupPath%" >nul 2>nul
- set "path=%path%;%adbPath%"
- REM counter
- set "count=0"
- for /f "tokens=1* delims=:" %%i in ('adb shell pm list package -3') do (
- set /a "count+=1"
- echo !count!:%%j
- set "versionCode=" & set "versionName=" & set "remotePath=" & set "chsName="
- REM get versionCode,versionName
- for /f "tokens=1,2 delims== " %%a in ('adb shell pm dump "%%j" ^| findstr /i "versionCode= versionName="') do (
- if /i "%%a"=="versionCode" set "versionCode=%%b"
- if /i "%%a"=="versionName" set "versionName=%%b"
- )
- set "localName=[%%j]-!versionCode!-V!versionName!.apk"
- REM get remotePath
- for /f "tokens=2 delims=:" %%a in ('adb shell pm path "%%j"') do set "remotePath=%%a"
- echo pulling ...
- REM pull apk
- if exist "%backupPath%\*!localName!" (
- REM if exist ,skip backup
- for %%a in ("%backupPath%\*!localName!") do echo skip %%a
- ) else (
- adb pull "!remotePath!" "%backupPath%\!localName!" >nul
- REM get chinese name
- for /f "tokens=2 delims=:'" %%a in ('aapt dump badging "%backupPath%\!localName!" ^| findstr /i "application-label:"') do set "chsName=%%a"
- REM rename
- if not "!chsName!"=="" move /y "%backupPath%\!localName!" "%backupPath%\!chsName!!localName!" >nul
- echo done. %backupPath%\!chsName!!localName!
- )
- echo --------------------------------------------------
- )
- echo backup done.
- pause&exit
复制代码 |