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

如下代码echooffadbshellsu当运行到adbshell后bat无法继续执行命令应该是跳转到linux内核无法识别求问如何在BAT中实现linux命令的自动运行... 如下代码
echo off
adb shell
su
当运行到 adb shell后 bat无法继续执行命令 应该是跳转到linux内核 无法识别
求问 如何在 BAT 中实现 linux命令的自动运行
就是说 adb shell 后能继续自动执行su 和相关的linux命令
adb shell su会卡死、
我试过使用命令 adb shell +指令 会提示权限不足
adb shell后 使用SU命令获取权限
然后自动运行linux代码
展开
 我来答
匿名用户
2020-12-10
展开全部
这是无法实现的。你无法在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身份执行。
码术
推荐于2017-11-25 · 会码术,享生活,赢职场!
码术
采纳数:232 获赞数:461

向TA提问 私信TA
展开全部
你可以试一下下面的方法:
@echo off
echo su > temp.txt
echo 其它命令 >> temp.txt
adb shell < temp.txt
del temp.txt
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wenfeng1971
2012-11-12 · TA获得超过5072个赞
知道小有建树答主
回答量:1154
采纳率:54%
帮助的人:590万
展开全部
& adb shell
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式