2012-10-15 5 views

Antwort

45

Kopieren Sie die *.img Dateien in ein leeres Verzeichnis, und drücken Sie dann auf das Verzeichnis (adb push /tmp/images /storage/sdcard0). adb verschiebt alle Dateien in diesem Verzeichnis an den gewünschten Speicherort.

BTW, /sdcard Da ein Pfad schon seit einiger Zeit veraltet ist, stellen Sie sicher, dass Sie ein Ziel verwenden, das bereits existiert und von Ihrem Gerät unterstützt wird. Die meisten Android 2.x/3.x/4.0-Geräte verwenden /mnt/sdcard; Android 4.1 verwendet /storage/sdcard0.

+0

Nun habe ich schon, aber Ich habe mich gefragt, ob ADB Wildcards unterstützt. Hmm, ich hatte nie ein Problem mit/sdcard/aber ich habe es nur auf 4.1.1 (4.1.2 in letzter Zeit) in meinem Galaxy Nexus verwendet. Vielen Dank für die Antwort! – john

+4

@john: "Ich habe mich gefragt, ob ADB Wildcards unterstützt" - scheint es nicht. – CommonsWare

+0

In diesem Fall erwäge ich den Ordner Trick, den Sie als Antwort vorgeschlagen haben. Danke nochmal! – john

18

Von meiner Meinung nach der Datei mit Echo ...

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

Ich glaube, dass dies funktionieren könnte (beachten Sie, dass '/ sdcard /' veraltet ist, wie die angenommene Antwort nahelegt), aber Sie sollten überprüfen, dass es tut und Ihre Antwort ein wenig besser formatiert. – MasterAM

+0

@znt: Ich habe es behoben. –

4

Verwendung finden ({} stellt Dateinamen):

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

Ich habe ein Skript, das es funktioniert (Bindestrich, 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 

Verbrauch:

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

Die ersten beiden Zeilen sind dort links zum Debuggen: Sie können die ersten beiden Zeilen ändern

D=echo 
#D= 

und Lassen Sie das Skript die adb push Befehle stattdessen drucken sie auszuführen.

UPDATE: zusätzliche Möglichkeit, auf alle angeschlossenen Geräte zu schieben (die -all Schalter)

#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 
4

Sie Angenommen verwenden Windows-, können Sie eine Verwendung für Loop-Dateien mit einer Erweiterung zu finden und eine adb tun Push mit dieser Datei wie folgt in der Befehlszeile

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

Wenn Sie es als eine Batch-Datei dann stellen Sie sicher, ein zusätzliches „%“ vor „% i“ hinzufügen speichern wie unter

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

Wenn Sie Ubuntu verwenden, können Sie diesen Befehl verwenden, die im Grunde das Gleiche, es half den „-Ordner Trick“

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

Hoffnung macht :)