bat中 某个adb命令执行的结果可能是 “ 01:00.0 Class 0280: 17cb:1101 ” 或者空白, 如何判断命令是否找到东西了呢
时间: 2024-10-12 17:09:36 浏览: 32
在Windows批处理(bat)文件中,当你使用ADB(Android Debug Bridge)命令执行并期望得到特定信息时,判断命令是否找到对应结果通常依赖于命令的输出格式。对于你给出的例子,"01:00.0 Class 0280: 17cb:1101" 或者空白,可以尝试以下几种方式:
1. **简单模式**:如果结果总是存在并且固定格式,你可以使用`if`语句配合`echo`命令检查输出是否为空。例如:
```cmd
for /F "tokens=* delims=" %%A in ('adb command') do if "%%A"=="" (echo 没有找到) else (echo 找到了: %%A)
```
这里假设"找不到"就是空白的输出。如果输出非空,`if`条件失败,会显示"找到了"和内容。
2. **复杂模式**:如果结果可能多种情况,你可以先将输出保存到一个变量中,然后分析这个变量的内容。比如:
```cmd
set result=%adb command%
if "%result%" equ "" (
echo 没有找到匹配的信息
) else (
echo 找到了: %result%
)
```
这将捕获所有输出,包括空白。
3. **利用grep等工具**:如果你知道特定的标识符,可以使用外部工具如`findstr`或`grep`来过滤结果。例如:
```cmd
for /F "delims=" %%A in ('adb command ^| findstr "Class 0280: 17cb:1101"') do if "%%A" neq "" (echo 找到了) else (echo 没有找到)
```
这里假设"Class 0280: 17cb:1101"是你想查找的关键部分。
注意,以上示例都假设adb命令的标准输出是命令预期的结果。如果ADB命令有可能有错误输出,记得处理`ERRORLEVEL`。
阅读全文