【问题标题】:Running multiple adb shell commands in batch file在批处理文件中运行多个 adb shell 命令
【发布时间】:2014-09-25 13:23:23
【问题描述】:

我正在制作一个批处理文件,它将为 N 台设备执行此操作 mount -o rw,重新挂载 /system 并将 .jar 文件发送到根设备上的 /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: exec failed for mount -o rw,remount /system Error:No such file or directory"

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

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

但没有运气。

我怎样才能运行一个批处理脚本来更新多个根设备,这样我就可以更改 IP? 提前来!

【问题讨论】:

  • 在 linux 中这有效: adb shell su -c "mount -o rw,remount /system"。设备安卓 4+。也许设备或 adb/su 版本有问题?

标签: android shell batch-file root


【解决方案1】:

首先从一个批次开始,该批次将根据 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 读取它们。

【讨论】:

  • 重读问题。问题不在添加IP。 “adb shell su -c”mount -o rw,remount /system 中的问题
  • 你说得对,我不知何故专注于问题的批处理部分。如果合适,将删除答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-15
  • 1970-01-01
  • 2016-04-27
  • 1970-01-01
  • 1970-01-01
  • 2017-11-30
  • 1970-01-01
相关资源
最近更新 更多