Управляйте несколькими устройствами с помощью команд ADB - PullRequest
0 голосов
/ 04 августа 2020

Я хотел бы назначить вывод adb нескольким переменным, чтобы можно было управлять несколькими устройствами одновременно.

 adb devices

тогда CMD отобразит

Список подключенных устройств xxyyzz device Устройство aabbccdd

Я хотел бы назначить xxyyzz для a и aabbccdd для b. Мне удалось сделать это для одного устройства, но не для нескольких, используя следующий код:

@echo off
FOR /F "tokens=* USEBACKQ" %%F IN (`adb devices`) DO (
SET SN=%%F
)
set SN=%SN: =%
set SN=%SN:device=%
echo %SN%
pause

Спасибо.

1 Ответ

0 голосов
/ 09 августа 2020

Я не вижу никакой пользы в установке неизвестного количества подключенных устройств для однобуквенных переменных, если вы не знаете, сколько было возвращено подключенным, вы не будете знать, какие проверяемые определены.

Тем не менее, следующий код должен выполнять именно ту задачу, которую вы указали в своем вопросе:

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion
Set "i=96"&For /F Skip^=1 %%G In ('adb.exe devices 2^>NUL')Do Set /A i+=1&cmd.exe /C "Exit /B !i!"&Set "!=ExitCodeASCII!=%%G"

Если по причине, которую я упомянул при открытии, теперь вам нужно визуальное подтверждение устройств, которые вы определили , вы, вероятно, могли бы расширить код следующим образом:

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion
Set "i=96"&For /F Skip^=1 %%G In ('adb.exe devices 2^>NUL')Do Set /A i+=1&cmd.exe /C Exit /B !i!&Set "!=ExitCodeASCII!=%%G"
If %i% Lss 97 GoTo :EOF
Set /A i-=96&Set "letters=0abcdefghijklmnopqrstuvwxyz"&Echo You have !i! devices
(For /L %%G In (1,1,%i%)Do For /F %%H In ("!letters:~%%G,1!")Do Echo %%%%H%% = !%%H!)&Pause
...