Board logo

标题: [系统相关] 批处理Redmi手机电池容量监测,电池损耗计算 [打印本页]

作者: lancer    时间: 2023-1-9 11:42     标题: 批处理Redmi手机电池容量监测,电池损耗计算

想发到原创区的,发现自己的权限不够,不能发。
代码已经修改了2版了,限于手头的手机只有Redmi K40 pro,其他机型不能测试,理论上小米和红米都支持,如果有bug欢迎反馈。
代码写的比较捡漏,论坛里的大神,如果不吝指点,欢迎修改代码,增加使用体验。
  1. @echo off
  2. echo,当前已连接的设备如下,请确保只连接了一部手机,如有多部手机,请先断开。
  3. adb devices
  4. pause
  5. setlocal enabledelayedexpansion
  6. for /f "tokens=3 delims=: " %%i in ('adb shell dumpsys battery ^| findstr Charge') do (
  7. set equ=%%i
  8. set str=%%i
  9. set n=0
  10. call :loop
  11. if !n! equ 7 (set /a equ=!equ!*100)
  12. )
  13. for /f "tokens=2 delims=: " %%i in ('adb shell dumpsys battery ^| findstr level') do (
  14. set per=%%i
  15. )
  16. for /f "tokens=2 delims=: " %%i in ('adb shell dumpsys battery ^| findstr temperature') do (
  17. set tem=%%i
  18. )
  19. set stt=4520
  20. set /p "stt=请输入电池设计容量,Redmi K40系列机型无需输入,直接回车:"
  21. echo,电 量 计 数:!equ!
  22. echo,当前电量百分比:!per!%%
  23. set /a var=!equ!/!per!/1000
  24. set /a loss=!var!*100/!stt!
  25. set /a tep=!tem!/10
  26. echo,电池温度:!tep!℃
  27. echo,电池实际容量:!var! mAh
  28. echo,电池设计容量:!stt! mAh
  29. echo,电池损耗情况:!loss!%% ^<--------------------------
  30. pause
  31. goto :eof
  32. :loop
  33. set str=!str:~,-1!
  34. set /a n=!n!+1
  35. if "!str!" equ "" goto :eof
  36. if "!str!" neq "" goto loop
  37. endlocal
  38. pause
复制代码

作者: Batcher    时间: 2023-1-10 20:44

回复 1# lancer


可以考虑减少 adb shell dumpsys battery 执行次数
例如:
adb shell dumpsys battery > "%temp%\adb.txt"
后面的几个for循环去读这个txt文件
作者: lancer    时间: 2023-1-11 08:52

回复 2# Batcher


    确实可以减少这条语句的执行次数,只是我个人不太喜欢临时文件,所以就多次执行了这条语句。如果是大型批处理的话,肯定是费时的,索性这是一个小批处理,就没有这样写。
作者: Batcher    时间: 2023-1-11 09:15

回复 1# lancer


    可以考虑使用缩进,不要所有代码定格写。
作者: lancer    时间: 2023-1-11 09:54

回复 4# Batcher


    好的




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2