我正在使用批处理从中提取信息adb devices -l
,此命令显示如下消息:
123456789012345 device product:abc model:ABC device:abc transport_id:7
我想获得 transport_id7从这个字符串中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
解决这个问题的正确表述是:
for /f "tokens=2 delims=:" %%A in ("%%f") Do @Echo %%A
如果不使用双引号%%f
,则会将其视为文件名。如果使用双引号,则会将其视为字符串。