在批处理文件中运行多个adb shell命令

时间:2014-09-25 13:23:24

标签: android shell batch-file root

我正在制作一个批处理文件,可以为N个设备执行此操作 mount -o rw,remount / system 并将.jar文件发送到root系统上的/ system / framework / 目前我有类似

的东西
adb kill-server
adb start-server
adb disconnect
ECHO "Connecting"
adb connect 192.168.4.17
adb connect 192.168.4.17
adb connect 192.168.4.17
adb connect 192.168.4.17
ECHO "Connected"
adb shell su -c "mount -o rw,remount /system"
ECHO "Mounting /system sucessfully, copying.jar"
timeout 5
adb push android.policy.jar /system/framework/
ECHO "Restarting device!"
timeout 5
adb reboot
ECHO "DONE"

然后我会在1个批处理文件中将这些行复制为N次,只需更改IP即可。 问题是我无法运行

"adb shell su -c "mount -o rw,remount /system"

因为它说 “su:su成功了 su:exec失败了mount -o rw,remount / system错误:没有这样的文件或目录“

如果我尝试在adb shell中运行多个命令的任何其他情况,它只会破坏批处理文件并且它不起作用,我也尝试了

adb shell "su & mount -o rw,remount /system" 

但没有运气。

我怎么能运行一个批处理脚本来更新多个root设备,这样我才能改变IP? 提前Ty!

1 个答案:

答案 0 :(得分:0)

首先从一个批处理开始,它将基于IP更新单个Android设备而不会出现问题。现在看来mount存在一些问题。在此之后添加FOR,它将从批处理命令行参数中读取IP。

@echo off
for %%a in (%*) do (
    echo updating ip %%a
    // YOUR BATCH GOES HERE
)

像这样运行:update.bat 192.168.4.1 192.168.4.2 192.168.4.3。 请注意,您的设备将按顺序更新。

或者,您可以将IP放入文本文件中,并使用FOR /F读取它们。