2012-10-15 8 views

Odpowiedz

45

Skopiuj pliki *.img do pustego katalogu, a następnie naciśnij katalog (adb push /tmp/images /storage/sdcard0). adb przesyła wszystkie pliki z tego katalogu do wskazanej lokalizacji.

BTW, /sdcard ponieważ ścieżka już dawno przestała działać, więc upewnij się, że używasz miejsca docelowego, które istnieje i jest obsługiwane przez twoje urządzenie. Większość urządzeń z Androidem 2.x/3.x/4.0 używa /mnt/sdcard; Android 4.1 używa /storage/sdcard0.

+0

No ja już zrobiłem „Folder trick”, ale Zastanawiam się, czy ADB obsługuje znaki wieloznaczne. Hmm nigdy nie miałem problemu z/sdcard /, ale użyłem go tylko na 4.1.1 (4.1.2 jak ostatnio) w moim Galaxy Nexus. Dziękuję za odpowiedź! – john

+4

@john: "Zastanawiam się, czy ADB obsługuje znaki wieloznaczne" - nie wydaje się. – CommonsWare

+0

W takim przypadku rozważam sztuczkę, którą zasugerowałeś jako odpowiedź. Jeszcze raz dziękuję! – john

18

Z mojego umysłu z echem plik ...

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

Wierzę, że to może działać (zwróć uwagę, że '/ sdcard /' jest przestarzałe, jak sugeruje sugerowana odpowiedź), ale powinieneś to sprawdzić i sformatować odpowiedź nieco lepiej. – MasterAM

+0

@znt: Naprawiłem to. –

4

Korzystanie znalezienia ({} reprezentuje nazwę pliku):

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

Mam skrypt, który robi to (myślnik, 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 

Zastosowanie:

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

Pierwsze dwie linie pozostają tam do debugowania: można zmienić dwie pierwsze linie

D=echo 
#D= 

i zamiast tego skrypt wydrukuj polecenia adb push ich wykonania.

UPDATE: dodano zdolność do pchania się do wszystkich podłączonych urządzeń (przełącznik -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 
4

Zakładając, że używasz Okna, można użyć pętli for, aby znaleźć pliki z rozszerzeniem i zrobić adb pchania z tego pliku, jak to w wierszu poleceń

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

Jeśli zapisanie go w postaci pliku wsadowego, a następnie upewnij się, aby dodać dodatkowy „%” przed „% i” jak poniżej

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

Jeśli używasz Ubuntu, można użyć tego polecenia, które w zasadzie robi to samo

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

nadzieję, że to pomogło :)