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を見つけることができませんはどういう意味ですか?
問題を解決するための正しい定式化は次のとおりです。
for /f "tokens=2 delims=:" %%A in ("%%f") Do @Echo %%A
%%f
を二重引用符で囲まない場合、ファイル名と見なされます。二重引用符を使用すると、文字列として扱われます。