1

Я использую пакет для извлечения информации из adb devices -l , эта команда показывает сообщения, подобные этому:

123456789012345    device product:abc model:ABC device:abc transport_id:7

Я хотел бы получить transport_id 7 из этой строки transport_id:7 , поэтому сначала я пытаюсь разбить сообщения по пробелам, и все работает нормально. Но при попытке разделить на двоеточие я получил сообщение об ошибке:система не может найти файл transport_id:7. Что я делаю неправильно ?

Вот мой код

@ECHO off
for /f "tokens=1,2,3,4,5,6" %%a in ('adb.exe devices -l') do (
    if "%%b" == "device" ( 
        ECHO Serial Number : %%a
        ECHO Transport Id  : %%f
        for /f "tokens=2 delims=:" %%A in ( %%f ) Do @Echo %%A
        call test.bat %%A
    )
)
PAUSE

Выход и ошибка:

Serial Number : 123456789012345
Transport Id  : transport_id:7
The system cannot find the file transport_id:7.

Что означает это сообщение об ошибке Система не может найти файл transport_id:7 означает?

1 ответ1

1

Правильная формулировка для решения проблемы:

for /f "tokens=2 delims=:" %%A in ("%%f") Do @Echo %%A

Без двойных кавычек вокруг %%f оно берется как имя файла. Двойные кавычки приводят к тому, что он рассматривается как строка.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .