编写一个bat脚本,要求:执行循环中一直adb devices指令并输出连接设备数量当有设备列表不为空时跳出循环
时间: 2024-02-11 17:06:45 浏览: 131
可以尝试以下的bat脚本:
```
@echo off
setlocal enabledelayedexpansion
:loop
set count=0
for /f "skip=1 tokens=1" %%a in ('adb devices') do (
if not "%%a"=="List" (
set /a count+=1
)
)
if %count% gtr 0 (
echo found %count% devices
goto end
) else (
echo device list is empty
ping -n 3 127.0.0.1 > nul
goto loop
)
:end
echo done
pause
```
这个脚本会不断执行`adb devices`命令,通过for循环遍历设备列表,统计设备数量。当设备列表不为空时,跳出循环,输出设备数量。如果设备列表为空,等待3秒后继续执行循环。当跳出循环后,输出"done",并暂停脚本的执行。
需要注意的是,如果`adb devices`命令一直无法找到设备,那么脚本会一直执行下去,可能会出现死循环的情况。因此,建议在循环中添加超时机制或者计数器,以避免出现死循环。
相关问题
编写一个bat脚本,要求:执行循环中一直adb devices指令当有设备时跳出循环
可以尝试以下的bat脚本:
```
@echo off
setlocal enabledelayedexpansion
:loop
adb devices | find "device"
if %errorlevel% equ 0 (
echo found device
goto end
) else (
echo device not found
ping -n 3 127.0.0.1 > nul
goto loop
)
:end
echo done
pause
```
这个脚本会不断执行`adb devices`命令,当命令返回值中包含"device"时,跳出循环,输出"found device"。如果命令返回值中不包含"device",则等待3秒后继续执行循环。当跳出循环后,输出"done",并暂停脚本的执行。
需要注意的是,如果`adb devices`命令一直无法找到设备,那么脚本会一直执行下去,可能会出现死循环的情况。因此,建议在循环中添加超时机制或者计数器,以避免出现死循环。
.bat 得到adb devices设备,判断有多少个
要编写一个批处理文件来获取 adb devices 中连接的设备数量,可以使用以下命令:
```bat
@echo off
setlocal enabledelayedexpansion
adb devices > adb_output.txt
set count=0
for /f "skip=1 tokens=1,2" %%a in (adb_output.txt) do (
if "%%b"=="device" (
set /a count+=1
)
)
echo Number of connected devices: %count%
del adb_output.txt
endlocal
```
这个批处理文件执行以下操作:
1. 使用 `adb devices > adb_output.txt` 命令将 adb devices 的输出重定向到一个文本文件 adb_output.txt。
2. 设置变量 `count` 初始值为 0。
3. 使用 `for /f` 命令遍历 adb_output.txt 中的每一行。
4. 使用 `skip=1` 跳过第一行,因为第一行是标题行。
5. 使用 `tokens=1,2` 将每一行按空格或制表符分割成两个部分。
6. 如果第二部分(即设备状态)为 "device",则将 count 自增 1。
7. 最后,输出连接的设备数量并删除临时文件 adb_output.txt,并结束脚本。
注意:在运行该批处理文件之前,请确保已经安装了 ADB 并且已将其添加到系统的环境变量中。
阅读全文