求问 BAT脚本如何自动执行 adb shell 以后的命令

如下代码
echo off
adb shell
su
当运行到 adb shell后 bat无法继续执行命令 应该是跳转到linux内核 无法识别
求问 如何在 BAT 中实现 linux命令的自动运行
就是说 adb shell 后能继续自动执行su 和相关的linux命令
adb shell su会卡死、
我试过使用命令 adb shell +指令 会提示权限不足
adb shell后 使用SU命令获取权限
然后自动运行linux代码

这是无法实现的。你无法在bat脚本中运行交互式shell命令,你的命令无法发送进入。
bat脚本运行时,是在CMD的环境下运行,它的命令解释器是cmd。
而su在shell环境下执行的,它的命令解释器是shell下的"/system/bin/sh"。

su是一条交互式的shell命令,它需要与shell环境下的用户进行交互操作。

问题就在这里了,
bat脚本只负责将"shell su"作为参数传递执行一次adb.exe。
这个动作完成,这条命令的步骤就算结束了,
但此时su还有一个切换用户身份的动作,如果有密码还会通过shell请求用户输入密码,
但运行bat的cmd环境是它收不到这个请求的。
解决办法:
一. 将su命令之后需要执行的命令写成一个sh脚本。
通过adb将sh脚本推入手机中,并为脚本添加可执行权限
在bat中添加一条比方说这样的命令
adb shell ". /path/to/your/file.sh"

二. 安装superSU授权管理器
安装superSU授权管理器后执行
adb root
授权,允许adb以root身份运行。
这之后你通过adb 发送的shell命令会以root身份执行。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-25
你可以试一下下面的方法:
@echo off
echo su > temp.txt
echo 其它命令 >> temp.txt
adb shell < temp.txt
del temp.txt本回答被提问者采纳
第2个回答  2012-11-12
& adb shell
相似回答