0
我正在使用FOR命令和AAPT命令從目錄中的多個APK獲取軟件包名稱。我正在使用單獨的FOR命令和ADB命令來列出設備中的所有第三方安裝的應用程序。Windows Batch/ADB - 檢查多個設備的已安裝應用程序
我已經能夠交叉引用這些來獲得我想要的單個設備的輸出。我不確定如何重新排列腳本以管理多個設備,因爲我收到錯誤。
我希望你能理解我想要達到的目標。請參閱我下面的嘗試:
::Global
@echo off
set AAPT=tools\aapt.exe
set GREP=tools\grep.exe
set CUT=tools\cut.exe
:: Applications
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "tokens=1,2 skip=1" %%N IN ('adb devices') DO (
SET IS_DEV=%%O
if "!IS_DEV!" == "device" (
SET SERIAL=%%N
for /f "delims=" %%P in ('dir /b ^"APKs\*.apk^"') do (
SET APK=%%P
for /f "tokens=1 delims=" %%Q in ('%AAPT% d badging APKs\!APK! ^| !GREP! "package: name=" ^| !CUT! -d' -f2') do (
set package=%%Q
if "!package!" == "" set package=Unknown (
echo !package!>>"%userprofile%\desktop\PCAPPS.txt"
)
)
)
)
)
FOR /F "tokens=1,2 skip=1" %%R IN ('adb devices') DO (
if "!IS_DEV!" == "device" (
FOR /F "tokens=1 delims=" %%U IN ('adb shell "pm list packages -3" ^| !CUT! -f 2 -d ":"^') DO (
SET DEVPACKAGE=%%U
echo !DEVPACKAGE!>>"%userprofile%\desktop\DEVAPPS.txt"
)
)
)
)
)
FOR /f "tokens=*" %%a in ('FINDSTR /vlxg:"%userprofile%\desktop\DEVAPPS.txt" "%userprofile%\desktop\PCAPPS.txt"') DO (
set NOTDEVAPP=%%a
echo !SERIAL! does not have package !NOTDEVAPP! installed
)
del "%userprofile%\desktop\DEVAPPS.txt"
del "%userprofile%\desktop\PCAPPS.txt"
)
ENDLOCAL
@pause
這涉及到這樣一個問題:Windows Batch/ADB - Check if installed .apk matches .apk from a directory
的可能的複製[Windows批處理/ ADB - 檢查是否安裝apk文件從一個目錄的apk匹配](http://stackoverflow.com/questions/42815229/windows-batch-adb-check-if- installed-apk-matches-apk-from-a-directory) – aschipfl
請參閱問題底部的註釋 – beecho01