在window终端很容易进入adb shell,在发送一些相应的消息。今天写脚本实现发送一些消息抓取log,但是遇到一个问题。那就是当发送完os.popen("adb shell"),再发送一些消息,无论如何也不能发送成功,包括把命令和adb shell连在一起发。在这里,我也觉得是因为adb shell进入的是android的界面了。此时可以执行 ls 命令看到android相应的目录。而python脚本只能与cmd进行交互。
百度查也没查到对应的解决方法。只有一篇文章标题提到解决方法,但我尝试过后,并没有成功。最后终于找到了解决方法,现在分享给大家!
对于 cmd 终端,如果命令组合起来,它可能只识别第一条命令,把之后的命令当作参数传入。所以,只需要把之后的命令用引号引起来就可以一起执行成功了!
在python脚本中这样使用就好了:
os.popen("adb -s 192.168.1.100:5555 shell \"dmesg > /data/dmesg.log\"")
这样就不必先进入adb shell,在执行 dmesg > /data/dmesg.log 了。
本文介绍了一个在Python脚本中使用adbShell命令的技巧。通过将多个命令用引号括起来,可以直接在脚本中执行复杂的adbShell命令,而无需先切换到adbShell环境。这种方法特别适用于需要从Android设备抓取日志等场景。
4204





