J'ai un dossier sur ma carte SD en tant que: /Mnt/sdcard/Folder1/Folder2/Folder3/*. Jpg
Le nom de Folder1 et Folder2 reste constant et à l'intérieur de Folder2, j'ai Folder3, 4, 5 et ainsi de suite .. ordinateur..
Chaque dossier a un nombre différent de fichiers jpeg et autres fichiers et j'ai essayé de l'utiliser:
adb pull mnt/sdcard/Folder1/Folder2/Folder/*.jpg .
Mais cela n'a pas fonctionné ... Alors, comment puis-je extraire tous les fichiers présents dans n'importe quel dossier de la carte SD avec une seule commande (une seule commande car chaque dossier contient un nombre différent de fichiers)
pull
:adb pull "/sdcard/Folder1"
Sortie:
adb pull "/sdcard/Folder1"
pull: building file list...
pull: /sdcard/Folder1/image1.jpg -> ./image1.jpg
pull: /sdcard/Folder1/image2.jpg -> ./image2.jpg
pull: /sdcard/Folder1/image3.jpg -> ./image3.jpg
3 files pulled. 0 files skipped.
find
à partir de BusyBox
:adb Shell find "/sdcard/Folder1" -iname "*.jpg" | tr -d '\015' | while read line; do adb pull "$line"; done;
Voici une explication:
adb Shell find "/sdcard/Folder1" - use the find command, use the top folder
-iname "*.jpg" - filter the output to only *.jpg files
| - passes data(output) from one command to another
tr -d '\015' - explained here: http://stackoverflow.com/questions/9664086/bash-is-removing-commands-in-while
while read line; - while loop to read input of previous commands
do adb pull "$line"; done; - pull the files into the current running directory, finish. The quotation marks around $line are required to work with filenames containing spaces.
Les scripts commenceront dans le dossier principal, puis récursivement, rechercheront tous les fichiers "* .jpg" et les extrairont de votre téléphone vers le répertoire actuel.
Le répertoire pull est disponible sur les nouveaux outils Android . (Je ne sais pas à partir de quelle version il a été ajouté, mais il fonctionne sur le dernier ADT 21.1)
adb pull /sdcard/Robotium-Screenshots
pull: building file list...
pull: /sdcard/Robotium-Screenshots/090313-110415.jpg -> ./090313-110415.jpg
pull: /sdcard/Robotium-Screenshots/090313-110412.jpg -> ./090313-110412.jpg
pull: /sdcard/Robotium-Screenshots/090313-110408.jpg -> ./090313-110408.jpg
pull: /sdcard/Robotium-Screenshots/090313-110406.jpg -> ./090313-110406.jpg
pull: /sdcard/Robotium-Screenshots/090313-110404.jpg -> ./090313-110404.jpg
5 files pulled. 0 files skipped.
61 KB/s (338736 bytes in 5.409s)
Essayez d’indiquer simplement le chemin d’où vous voulez extraire les fichiers .__ Je viens de recevoir les fichiers de sdcard comme
adb pull sdcard/
ne PAS donner * comme pour élargir la recherche ou pour filtrer . ex: adb pull sdcard/*. txt -> ceci n’est pas valide.
il suffit de donner adb pull sdcard /
Oui, il suffit d'utiliser la barre oblique finale pour extraire le répertoire de manière récursive. Fonctionne pour moi avec Nexus 5 et la version actuelle d’adb (mars 2014).
Sur Android 6 avec ADB version 1.0.32, vous devez mettre/derrière le dossier que vous souhaitez copier. E.g adb pull "/sdcard/".
si vous utilisez simplement jellybean, lancez cmd, tapez adb devices pour vous assurer que votre texte est lisible, tapez adb pull sdcard/sdcard_ (la date ou un extra) <--- ce fichier doit être créé au préalable dans le répertoire adb. PROFIT!
Dans les autres versions, tapez adb pull mnt/sdcard/sdcard_ (la date ou extra)
N'oubliez pas de créer un fichier ou vous aurez un désordre ou cela ne fonctionnera pas.
Si vous voulez extraire un répertoire avec un accès restreint à partir d'un périphérique root, vous devez redémarrer adb en tant que root: tapez adb root
avant pull Sinon, vous obtiendrez une erreur en indiquant remote object '/data/data/xxx.example.app' does not exist