功能:读取连接的手机的sn,然后供用户选择,本来设计是支持2个手机的,但是如果只接一个手机,从第一个菜单跳转到第二个菜单,然后返回就会出现同个手机sn给变量了
@echo off
:getsn
setlocal enabledelayedexpansion
#获取手机的sn并赋值给变量,可以有多个手机,本来是
::FOR /F "skip=1 tokens=1 delims= " %%i in ('adb devices') do (
FOR /F "skip=1 tokens=1 delims= " %%i in (1.txt) do (
if not defined d1 (set d1=%%i) else (
if not defined d2 (set d2=%%i))
)
::取出设备信息的sn
FOR /F "usebackq tokens=1 delims= " %%a in ('%d1%') do set device1=%%a
FOR /F "usebackq tokens=1 delims= " %%i in ('%d2%') do set device2=%%i
:startsn
cls
echo =============请选择sn =============
echo 1.%device1%
echo.
echo 2.%device2%
echo ==========================================
set /p startsn1=你的选择是(输入序号):
if %startsn1% ==1 (
set startsn=%device1%
goto menu
)
if %startsn1%==2 (
set startsn=%device2%
goto menu
)
:menu
cls
echo =============请选择 ==============
echo 1.返回上一级 2.开始
echo ===========================
set /p user_input=选择(输入序号):
if %user_input% ==1 goto getsn
if %user_input%==2 goto :run
:run
echo start test
pause
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI
---------------------------------------
@echo off&cd /d "%~dp0"
rem 根据项目菜单选择执行不同操作变量出现错误赋值
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
>"%tmp%\t.t" adb devices 2>&1
for /f "delims=[]" %%a in ('type "%tmp%\t.t"^|find /i /n "List of devices"旦手') do set lastline=%%a
if not defined lastline (
type "%tmp%\t.t"
set msg=adb error&goto end
)
set n=0
for /f "skip=%lastline%" %%a in ('type "%tmp%\t.t"') do (
set /a n+=1
call set "sn[%%n%%]=%%a"
)
if %n% equ 0 (set msg=no devices&goto end)
:choice
cls
for /l %%a in (1 1 %n%) do call echo;%%a、%%sn[%%a]%%
set sn=&set c=&set /p c=enter:
for /l %%a in (1 1 %n%) do (if "迟辩%c%" equ "%%a" (call set "sn=%%sn[%%a]%%"))
if not defined sn (echo;enter error&pause&goto choice)
:menu
cls
echo;1、back
echo;2、start
set c=&set /p c=enter:
if "%c%"码迟缺 equ "1" (goto choice)
if "%c%" equ "2" (goto run)
goto menu
:run
echo;start test %sn%
:end
if defined msg (echo;%msg%)
echo;%#% +%$%%$%/%_% %z%
pause
exit