2012-10-15 40 views

回答

45

*.img文件複製到空目錄,然後按目錄(adb push /tmp/images /storage/sdcard0)。 adb會將該目錄中的所有文件推送到指定位置。

順便說一下,/sdcard作爲一個路徑已經過時了相當長的一段時間,所以請確保您使用的目標存在並支持您的設備。大多數Android 2.x/3.x/4.0設備使用/mnt/sdcard; Android 4.1使用/storage/sdcard0

+0

嗯,我已經做了「文件夾中招」,但我想知道亞洲開發銀行是否支持通配符。嗯,我從來沒有遇到過/ sdcard /的問題,但是我在Galaxy Nexus中只使用4.1.1(最近4.1.2版本)。感謝您的回答! – john

+4

@john:「我想知道亞洲開發銀行是否支持通配符」 - 它似乎沒有。 – CommonsWare

+0

在這種情況下,我正在考慮您建議作爲答案的文件夾技巧。再次感謝! – john

18

從我的腦海裏迴響着與文件...

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

我相信這可以工作(請注意,'/ sdcard /'已過時,正如接受的答案所暗示的那樣),但是您應該驗證它是否確實並將您的答案格式化得更好一些。 – MasterAM

+0

@znt:我修好了。 –

4

使用find({}代表文件名):

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

我有一個腳本,做它(破折號,Ubuntu的精確) 。

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= 

和請使用腳本打印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 
4

假設你正在使用的Windows,您可以使用一個for循環來找到一個擴展名的文件,做一個亞行在命令行像這樣的文件推

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

如果您將其保存爲一個批處理文件,然後確保「%i」的前添加一個額外的「%」像下面

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

如果您正在使用的Ubuntu ,您可以使用此命令基本上做同樣的事情

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

希望它能幫助:)

相關問題