Подтвердить что ты не робот

ADB нажимает несколько файлов с тем же расширением с помощью одной команды

Я хочу подталкивать некоторые файлы одного типа (.img) в раздел /sdcard телефона с помощью одной команды. Но шаблон не работает:

adb push *.img /sdcard/

Есть ли способ достичь этого?

4b9b3361

Ответ 1

Скопируйте файлы *.img в пустой каталог, затем нажмите каталог (adb push /tmp/images /storage/sdcard0). adb будет выталкивать все файлы в этом каталоге в указанное вами место.

BTW, /sdcard, поскольку путь довольно устарел в течение некоторого времени, поэтому, пожалуйста, убедитесь, что вы используете пункт назначения, который существует и поддерживается вашим устройством. Большинство устройств Android 2.x/3.x/4.0 используют /mnt/sdcard; Android 4.1 использует /storage/sdcard0.

Ответ 2

Из моего ума с эхом от файла...

for i in *.img; do echo $i; adb push "$i" /sdcard/; done;

Ответ 3

Предполагая, что вы используете Windows, вы можете использовать цикл for для поиска файлов с расширением и выполнить adb push с этим файлом, как это в командной строке

for %i in (*.img) do adb push %i /sdcard/folderName/%i

Если вы сохраняете его как командный файл, то обязательно добавьте дополнительный "%" перед "% i", как показано ниже.

 for %%i in (*.img) do adb push %%i /sdcard/folderName/%%i

Если вы используете GNU/Linux, вы можете использовать эту команду, которая в основном делает то же самое

for f in *.img; do adb push $f /sdcard/folderName/$f; done

Надеюсь, это помогло :)

Ответ 4

Использование find ({} представляет имя файла):

find *.img -exec adb push {} /storage/sdcard0 \;

Ответ 5

У меня есть script, который делает это (тире, Ubuntu Precise).

mpush:

#D=echo
D=
S=
if [ $1 == "-s" ]; then
    S="-s $2"
    shift
    shift
fi
if [ $# -lt 2 ]; then
    echo "Usage: $0 directory files..."
else
DIR=$1
shift
for f in $*
do
  #echo "Processing $DIR/$f file..."
  echo ~/aspt/adb ${S} push "$f" "$DIR/$f"
  ${D} ~/aspt/adb ${S} push "$f" "$DIR/$f"
done
fi

Использование:

mpush /sdcard/ libMyLib.so
mpush /sdcard/ libFirst.so libSecond.so
mpush /sdcard/ *
mpush -s 109d8a6fe0678a3 /sdcard/ *

Первые две строки оставлены для отладки: вы можете изменить первые две строки на

D=echo
#D=

и script напечатайте команды adb push вместо их выполнения.

UPDATE: добавлена ​​возможность нажатия на все подключенные устройства (переключатель -all)

#D=echo
D=
S=
if [ $1 == "-2all" -o $1 == "-all" ]; then
  shift
  DEVICES=`~/aspt/adb devices | tail -n +2 | awk '{print $1}'`
  if [ $# -lt 2 ]; then
      echo "Usage: $0 [options] directory files..."
      echo "Options:"
      echo "-s device-id -- push to the specified device"
      echo "-all or -2all -- push to all devices"
  else
    DIR=$1
    shift
    for d in $DEVICES
    do
      for f in $*
      do
    #echo "Processing $DIR/$f file..."
    echo ~/aspt/adb -s $d push "$f" "$DIR/$f"
    ${D} ~/aspt/adb -s $d push "$f" "$DIR/$f"
      done
    done
  fi
else
  if [ $1 == "-s" ]; then
      S="-s $2"
      shift
      shift
  fi
  if [ $# -lt 2 ]; then
      echo "Usage: $0 [options] directory files..."
      echo "Options:"
      echo "-s device-id -- push to the specified device"
      echo "-all or -2all -- push to all devices"
  else
    DIR=$1
    shift
    for f in $*
    do
      #echo "Processing $DIR/$f file..."
      echo ~/aspt/adb ${S} push "$f" "$DIR/$f"
      ${D} ~/aspt/adb ${S} push "$f" "$DIR/$f"
    done
  fi
fi