tips:
①对应的 Notepad++ 的快捷键为Ctrl+k(单行、多行注释)&Ctrl+q(区块注释)
方式一、使用函数参数获取返回值(返回函数结果)
参数作为输出参数时,注意:
★函数内不要使用SETLOCAL和ENDLOCAL
★此文件不要设置setlocal enabledelayedexpansion
echo offREM sample:使用函数参数带回返回值,类似于C++引用call :getDevSN DevSNecho getDevSN errorlevel:%errorlevel%call :getUKeyNo UKeyNoecho getUKeyNo errorlevel:%errorlevel%echo ========result=======echo DevSN=%DevSN%echo UKeyNo=%UKeyNo%pausegoto:eof:getDevSNFor /F " tokens=1 delims= " %%a in ('adb devices ^| findstr device$') do (set tmpDevSN=%%a)set %~1=%tmpDevSN:~0,16%echo param %~1exit /b 0goto:eofgoto:eof:getUKeyNoFor /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 %~1exit /b 99goto:eof
执行结果:
方式二、全局变量实现返回函数结果
echo offREM setlocal enabledelayedexpansionset 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 0goto:eofgoto:eof:getDevSNFor /F " tokens=1 delims= " %%a in ('adb devices ^| findstr device$') do (set tmpDevSN=%%a)rem 在有enableDelayedExpansion时,用!! 引用变量set DevSN=%tmpDevSN:~0,16%exit /b 0goto:eofgoto:eof:getUKeyNoFor /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 0goto:eofREM endlocal
执行结果:
others:
For /F " tokens=1-2 delims=:" %%a in ('adb shell "dumpsys meminfo | grep 'Total RAM:'"') do (echo result: [%%a] [%%b])pause
执行结果: