Я изо всех сил стараюсь получить требуемый результат.Пакет Windows - проверьте, появляется ли одна переменная команды в другой командной переменной
Я использую 2 команды для получения двух переменных на устройстве, на нескольких устройствах. Я не уверен, как перекрестно ссылаться на них, чтобы получить результат, который я бы хотел. Я пытаюсь выяснить, появляется ли какое-либо содержимое DEVPACKAGE в содержимом пакетов, если они не отображаются в пакетах возвращают ошибку. Я предполагаю, что это нечто похожее на [Windows Batch: How to set the output of one command as a variable and use it in another command?, но я не вижу, как применить его к моим текущим переменным.
Я понимаю, что некоторые из моих методов могут быть грубыми. Я только серьезно изучал конструкцию пакетного файла в течение недели.
DEVPACKAGE
, Package
и попытался вывода, как показано ниже:
::Global
@echo off
set AAPT=tools\aapt.exe
set GREP=tools\grep.exe
set CUT=tools\cut.exe
:: Check Gold Build applications
cls
@echo.
@echo ------------------------ CHECK APPLICATIONS INSTALLED --------------------------
SETLOCAL ENABLEDELAYEDEXPANSION
::EXTRACT PACKAGENAME FROM APK
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 (
)
)
)
)
)
::EXTRACT INSTALLED PACKAGENAME
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" ^| !CUT! -f 2 -d ":"^') DO (
SET DEVPACKAGE=%%U
)
)
)
)
)
::CHECK IF INSTALLED APPEARS IN PACKAGENAME FROM APK FOLDER
FOR /F "tokens=1,2 skip=1" %%V IN ('adb devices') DO (
if "!IS_DEV!" == "device" (
for /f "delims=" %%W in ('dir /b ^"APKs\*.apk^"') do (
IF !DEVPACKAGE! NEQ !package! (
echo Device !SERIAL! does not have !package! installed
) else (
echo Device !SERIAL! has all APKs installed correctly
)
)
)
)
)
)
ENDLOCAL
@pause
я бы переменная вывода аналогична:
------------------------ CHECK APPLICATIONS INSTALLED --------------------------
Device <SERIAL1> does not have <APK2> installed
Device <SERIAL3> does not have <APK1> installed
Device <SERIAL22> does not have <APK7> installed
Press any key to continue . . .
Любая помощь будет высоко оценен. Заранее спасибо.
В вашем коде нет VAR1 и VAR2 .... – npocmaka
Я полагаю, вы хотите проверить, содержит ли 'DEVPACKAGE'' пакет'? Или наоборот? – npocmaka
thats correct Я хочу проверить, появляется ли 'DEVPACKAGE' в' package' – beecho01