0
0

adb devices -l で出た番号を変数に出力したい

Last updated at Posted at 2024-09-13

Androidデバイスが複数あるとadb devices -lの後に番号を指定しなければならないため作成した。

下記は:の後を取得するようにした。

@echo off
setlocal enabledelayedexpansion

REM adb devicesコマンドを実行してデバイス番号を取得
for /f "tokens=1,2" %%i in ('adb devices -l') do (
    REM デバイスのシリアル番号は2列目(statusが"device"の行)にある
    if "%%j"=="device" (
        set DEVICE_ID=%%i
        REM コロンの位置を探して、それ以降の文字を抽出する
        for /l %%x in (0,1,255) do (
            set CHAR=!DEVICE_ID:~%%x,1!
            if "!CHAR!"=="^:" (
                set AFTER_COLON=!DEVICE_ID:~%%x+1!
                goto :FOUND
            )
        )
    )
)

:FOUND
REM コロン以降の文字列を表示(デバッグ用)
echo String after colon: %AFTER_COLON%

REM 続けて処理を行う
pause

adb devices -l でデバイス番号だけ取得したい時はこちら

@echo off
setlocal enabledelayedexpansion

:: adb devices -l の出力を変数に読み込む
for /f "tokens=1,2 delims=:" %%a in ('adb devices -l') do (
    if "%%a"=="usb" (
        set device_number=%%b
        echo デバイス番号: !device_number!
    )
)

:: 最後に変数 device_number を出力
echo 取得されたデバイス番号は: !device_number!

pause

ループさせる

@echo off
setlocal enabledelayedexpansion

rem aDBコマンドの結果を取得
for /f "tokens=* delims=" %%a in ('aDB') do (
    set "output=%%a"
)

rem カウント用の変数
set count=0

rem forループで区切り文字を ":" に設定し、4回目以降のトークンを取得
for /f "tokens=1,2,3,4,5 delims=:" %%a in ("%output%") do (
    set /a count+=1
    if !count! equ 5 (
        set result=%%a
    )
)

rem 結果を表示
echo Result: %result%
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0