‘壹’ 求问 BAT脚本如何自动执行 adb shell 以后的命令
这是无法实现的。你无法在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身份执行。
‘贰’ 利用adb命令直接在电脑上给手机截图并拉到电脑上
1、安装adb(网上安装教程一大堆),然后将电脑和手机连接,在cmd下运行命令adb devices,查看是否连接成功。
2、使用adb命令
(1)截图命令:adb shell screencap -p /sdcard/screen.png
(2)拉取图片到本地的命令:adb pull -p /sdcard/screen.png
3、为了方便,建议弄一个.bat的文件,这样每次截图一点就好了。
‘叁’ adb shell命令在bat文件里怎么继续执行下一条命令啊
在批处理中通过adb来使用shell命令,
实际上是将需要执行的命令作为了"adb.exe"执行"shell"这个选项时的参数传递进去的,
要正确将整条命令完整的作为参数传递就对格式有严格的要求。
首先,执行dd命令需要root权限,那么需要切换用户身份,需要执行su命令。
然后才有权限进行dd操作。而不带选项参数的su命令是交互式的,所以应该使用su -c 选项,
正确的写法如下:
adb shell "su -c dd if='/sdcard/p1' of='/dev/block/mmcblk0p1'"
注意引号的使用。
‘肆’ 怎么将android adb 命令写成一个批处理文件
首先确保android-sdk 下tools目录加入到环境变量中
如果没有 也行!下面以android-sdk目录为c:\\android-sdk-windows为例
@echo off
echo 正在复制文件,请稍等......
cd c:\android-sdk-windows\tools\ //如果该目录以加到环境变量 这行就不用啦
adb push c:\1.png /sdcard/1.png
adb push c:\2.png /sdcard/2.png
echo 复制文件完成!
echo. & pause
将上面文件复制到 文本文件,修改扩展名 .bat 直接运行即可完成复制