2012-10-15 12 views
34

के साथ एक ही एक्सटेंशन के साथ कई फाइलों को धक्का देता है, मैं एक ही कमांड के साथ फोन के /sdcard विभाजन में उसी प्रकार (.img) की कुछ फ़ाइलों को धक्का देना चाहता हूं। लेकिन वाइल्डकार्ड काम नहीं करता है:एडीबी एक ही कमांड

adb push *.img /sdcard/ 

क्या कोई तरीका है कि मैं इसे प्राप्त कर सकता हूं?

उत्तर

45

*.img फ़ाइलों को एक खाली निर्देशिका में कॉपी करें, फिर निर्देशिका (adb push /tmp/images /storage/sdcard0) दबाएं। adb उस निर्देशिका में सभी फ़ाइलों को आपके निर्दिष्ट स्थान पर धक्का देगा।

बीटीडब्ल्यू, /sdcard पथ के रूप में पथ के रूप में अप्रचलित हो गया है, इसलिए कृपया सुनिश्चित करें कि आप एक गंतव्य का उपयोग करते हैं जो आपके डिवाइस द्वारा मौजूद है और समर्थित है। अधिकांश एंड्रॉइड 2.x/3.x/4.0 डिवाइस /mnt/sdcard का उपयोग करते हैं; एंड्रॉइड 4.1 /storage/sdcard0 का उपयोग करता है।

+0

खैर मैं पहले से ही "फ़ोल्डर चाल" की थी, लेकिन मैं सोच रहा था कि क्या एडीबी वाइल्डकार्ड का समर्थन करता है। हम्म मुझे कभी भी एसडीकार्ड के साथ कोई समस्या नहीं थी/लेकिन मैंने इसे अपने गैलेक्सी नेक्सस में केवल 4.1.1 (4.1.2 के रूप में) उपयोग किया है। जवाब देने के लिए बहुत कुछ धन्यवाद! – john

+4

@ जॉन: "मैं सोच रहा था कि क्या एडीबी वाइल्डकार्ड का समर्थन करता है" - ऐसा प्रतीत नहीं होता है। – CommonsWare

+0

उस मामले में मैं उस फ़ोल्डर की चाल पर विचार कर रहा हूं जिसे आपने उत्तर के रूप में सुझाया था। धन्यवाद! – john

18

फ़ाइल गूंज के साथ मेरे मन से ...

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

मेरा मानना ​​है कि यह काम कर सकता है (ध्यान दें कि स्वीकृत उत्तर सुझाए गए अनुसार '/ sdcard /' अप्रचलित है), लेकिन आपको यह सत्यापित करना चाहिए कि यह आपके उत्तर को थोड़ा बेहतर बनाता है और प्रारूपित करता है। – MasterAM

+0

@znt: मैंने इसे ठीक किया। –

4

खोज का उपयोग करना ({} फ़ाइल नाम का प्रतिनिधित्व करता है):

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

मैं एक स्क्रिप्ट है कि यह करता है है (पानी का छींटा, उबंटू सटीक) ।

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 कमांड प्रिंट करें उन्हें निष्पादित करने के लिए।

अद्यतन: जोड़ा (-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

सभी संलग्न उपकरणों पर पुश करने के लिए क्षमता विंडोज उपयोग कर रहे हैं आप यह सोचते हैं, आप एक पाश के लिए एक एक्सटेंशन के साथ फ़ाइलों को खोजने के लिए इस्तेमाल करते हैं और एक एडीबी क्या कर सकते हैं आदेश पंक्ति में इस तरह है कि फाइल के साथ धक्का

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

आप एक बैच फ़ाइल के रूप में सहेजने रहे हैं तो "मैं%" की तरह

नीचे से पहले एक अतिरिक्त "%" जोड़ना सुनिश्चित करें
for %%i in (*.img) do adb push %%i /sdcard/folderName/%%i 

आप उबंटू का उपयोग कर रहे हैं, तो आप इस आदेश का जो मूल रूप से एक ही बात

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

आशा है कि यह मदद की करता है का उपयोग कर सकते :)

संबंधित मुद्दे