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?
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
.
Dans mon esprit, avec en écho le fichier...
for i in *.img; do echo $i; adb push "$i" /sdcard/; done;
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é :)
utilisation de find ({}
représente le nom de fichier):
find *.img -exec adb push {} /storage/sdcard0 \;
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