ADB push plusieurs fichiers avec la même extension avec une seule commande

je veux pousser certains fichiers du même type (.img) <à la!-Partition du téléphone avec une seule commande. Mais le générique ne fonctionne pas:

adb push *.img /sdcard/

puis-je y arriver?

35
demandé sur Stefan van den Akker 2012-10-15 21:53:11

5 réponses

Copier *.img les fichiers dans un répertoire vide, puis poussez le répertoire (adb push /tmp/images /storage/sdcard0). adb va pousser tous les fichiers dans le répertoire de votre emplacement désigné.

BTW,/sdcard comme un chemin est obsolète depuis un certain temps, alors s'il vous plaît assurez-vous d'utiliser une destination qui existe et est supportée par votre appareil. Most Android 2.x / 3.x / 4.0 utilisation des appareils /mnt/sdcard; Android 4.1 utilise /storage/sdcard0.

48
répondu CommonsWare 2012-10-15 17:57:26

Dans mon esprit, avec en écho le fichier...

for i in *.img; do echo $i; adb push "$i" /sdcard/; done;
19
répondu The Doctor 2016-11-08 06:55:38

en Supposant que vous utilisez Windows, vous pouvez utiliser une boucle for pour trouver des fichiers avec une extension et faire une poussée adb avec ce fichier en ligne de commande

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

si vous l'enregistrez en tant que fichier batch, assurez-vous d'ajouter un "%" supplémentaire avant "%i" comme ci-dessous

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

Si vous utilisez Ubuntu, vous pouvez utiliser cette commande qui fait essentiellement la même chose

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

Espérons qu'il a aidé :)

6
répondu Rahul S 2016-03-30 07:50:08

utilisation de find ({} représente le nom de fichier):

find *.img -exec adb push {} /storage/sdcard0 \;
4
répondu bacv 2014-01-09 13:12:52

j'ai un script qui le fait (dash, Ubuntu Precise).

mpush:

#D=echo
D=
S=
if [  == "-s" ]; then
    S="-s "
    shift
    shift
fi
if [ $# -lt 2 ]; then
    echo "Usage:  directory files..."
else
DIR=
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

Utilisation:

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

les deux premières lignes sont laissées là pour le débogage: vous pouvez changer les deux premières lignes en

D=echo
#D=

et le script d'impression adb push commandes au lieu de les exécuter.

mise à jour: Ajout de la capacité de pousser sur tous les périphériques attachés (le -all switch)

#D=echo
D=
S=
if [  == "-2all" -o  == "-all" ]; then
  shift
  DEVICES=`~/aspt/adb devices | tail -n +2 | awk '{print }'`
  if [ $# -lt 2 ]; then
      echo "Usage:  [options] directory files..."
      echo "Options:"
      echo "-s device-id -- push to the specified device"
      echo "-all or -2all -- push to all devices"
  else
    DIR=
    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 [  == "-s" ]; then
      S="-s "
      shift
      shift
  fi
  if [ $# -lt 2 ]; then
      echo "Usage:  [options] directory files..."
      echo "Options:"
      echo "-s device-id -- push to the specified device"
      echo "-all or -2all -- push to all devices"
  else
    DIR=
    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
1
répondu 18446744073709551615 2014-07-05 08:06:26