adb批处理显示Logcat指定包名,中文无乱码,支持多个设备同时连接

adb批处理显示Logcat

主要解决有时候手动输入的麻烦。支持自定义adb目录。支持同时连接多个设备可以正常显示日志。支持中文无乱码。可以指定包名。

adb批处理显示Logcat指定包名,中文无乱码,支持多个设备同时连接_第1张图片
adb批处理显示Logcat指定包名,中文无乱码,支持多个设备同时连接_第2张图片

源码如下:

@echo off
::中文支持
chcp 65001
::设置adb路径
cd c:
cd %UserProfile%\AppData\Local\Android\Sdk\platform-tools
cls

echo                         【安卓adb日志显示  ——雨季1.0】
echo --------------------------------------------------------------------------
echo -   功能:中文显示Logcat日志。                                           -
echo -  	日志级别优先级是下面的字符,顺序是从低到高,默认为D              -
echo -  	V — 明细 verbose(最低优先级)                                    -
echo -  	D — 调试 debug                                                  -
echo -  	I — 信息 info                                                   -
echo -  	W — 警告 warn                                                   -
echo -  	E — 错误 error                                                  -
echo -  	F — 严重错误 fatal                                              -
echo -  	S — 无记载 silent                                               -
echo -  【注】连接多个设备时,默认打印第一个设备日志                          -
echo --------------------------------------------------------------------------

set /p input=请输入打印日志的包名(输入空则打印全部日志): 
::创建读取设备名称的文件
echo @echo off>>%~dp0getDevices.bat
echo adb devices>>%~dp0getDevices.bat
::读取设备名称
for /f  "tokens=1 delims=device" %%i in ('%~dp0getDevices.bat') do set device=%%i
echo 连接名称为:[%device%]
::删除该文件
Del /F /A /Q %~dp0getDevices.bat
if "%input%"=="" ( 
	call goto showAll 
) else (
	call goto show
)
:show
::创建读取Pid的文件
echo @echo off>>%~dp0getpid.bat
echo adb -s %device% shell "ps | grep %input%">>%~dp0getpid.bat
echo 执行命令:"adb -s %device% shell 'ps | grep %input%'"
::读取PID
for /f  "tokens=2 delims= " %%i in ('%~dp0getpid.bat') do set pid=%%i  
::去掉右边空格
:intercept_right2
if "%pid:~-1%"==" " set "pid=%pid:~0,-1%"&goto intercept_right2
echo pid为:[%pid%]
::删除该文件
Del /F /A /Q %~dp0getpid.bat
echo 执行命令:"adb -s %device% logcat *:D | find  '%pid%'"
adb -s %device% logcat *:D | find  "%pid%"
goto end

:showAll
adb -s %device% logcat
goto end

:end

新建文件,复制粘贴内容 保存为.bat即可。

如果设备连接的远程adb,执行这个批处理,电脑点都不占用资源,不占用USB,岂不是美滋滋。
欢迎大家提出修改意见。

你可能感兴趣的:(安卓,技术交流)