tips:
①对应的 Notepad++ 的快捷键为 Ctrl+k (单行、多行注释)& Ctrl+q (区块注释)
方式一、使用函数参数获取返回值(返回函数结果)
参数作为输出参数时,注意:
★函数内不要使用SETLOCAL和ENDLOCAL
★此文件不要设置setlocal enabledelayedexpansion
echo off
REM sample:使用函数参数带回返回值,类似于C++引用
call :getDevSN DevSN
echo getDevSN errorlevel:%errorlevel%
call :getUKeyNo UKeyNo
echo getUKeyNo errorlevel:%errorlevel%
echo ========result=======
echo DevSN=%DevSN%
echo UKeyNo=%UKeyNo%
pause
goto:eof
:getDevSN
For /F " tokens=1 delims= " %%a in ('adb devices ^| findstr device$') do (
set tmpDevSN=%%a
)
set %~1=%tmpDevSN:~0,16%
echo param %~1
exit /b 0
goto:eof
goto:eof
:getUKeyNo
For /F " tokens=1 delims=UKey" %%b in ('adb shell "ls /data/vendor/camera_dump | grep UKey"') do (
set tmpUKeyNo=%%b
)
set %~1=%tmpUKeyNo%
echo param %~1
exit /b 99
goto:eof
执行结果:
方式二、全局变量实现返回函数结果
echo off
REM setlocal enabledelayedexpansion
set DevSN=""
set UKeyNo=""
call :getDevSN && echo getDevSN errorlevel:%errorlevel%
call :getUKeyNo && echo getUKeyNo errorlevel:%errorlevel%
echo ========result=======
echo DevSN=%DevSN%
echo UKeyNo=%UKeyNo%
pause
exit /b 0
goto:eof
goto:eof
:getDevSN
For /F " tokens=1 delims= " %%a in ('adb devices ^| findstr device$') do (
set tmpDevSN=%%a
)
rem 在有enableDelayedExpansion时,用!! 引用变量
set DevSN=%tmpDevSN:~0,16%
exit /b 0
goto:eof
goto:eof
:getUKeyNo
For /F " tokens=1 delims=UKey" %%b in ('adb shell "ls /data/vendor/camera_dump | grep UKey"') do (
set tmpUKeyNo=%%b
)
set UKeyNo=%tmpUKeyNo%
exit /b 0
goto:eof
REM endlocal
执行结果:
others:
For /F " tokens=1-2 delims=:" %%a in ('adb shell "dumpsys meminfo | grep 'Total RAM:'"') do (
echo result: [%%a] [%%b]
)
pause
执行结果:文章来源:https://www.toymoban.com/news/detail-617872.html
文章来源地址https://www.toymoban.com/news/detail-617872.html
Reference:
批处理中setlocal enabledelayedexpansion的作用详细整理
bat批处理脚本 函数使用说明 函数调用结果如何返回
到了这里,关于bat 获取手机SN & 处理adb cmd 返回结果-(For 中执行多条cmd 的用法)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!