120

SD カードに次のようなフォルダがあります。 /mnt/sdcard/Folder1/Folder2/Folder3/*.jpg

Folder1 と Folder2 の名前は一定のままで、Folder2 内には Folder3、4、5 などがあります。adb を使用して、すべてのファイルではなくすべての jpeg ファイル (他にもあります) をコンピューターの現在のディレクトリにプルしたいと考えています。 .

すべてのフォルダーには異なる数の jpeg ファイルとその他のファイルがあり、これを使用してみました:

adb pull mnt/sdcard/Folder1/Folder2/Folder/*.jpg .

しかし、うまくいきませんでした..では、SDカードの任意のフォルダーにあるすべてのファイルを単一のコマンドでadbプルするにはどうすればよいですか(各フォルダーには異なる数のファイルがあるため、単一のコマンド)

4

7 に答える 7

163

使用する単一のファイル/フォルダpull

adb pull "/sdcard/Folder1"

出力:

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.

findfromを使用する特定のファイル/フォルダBusyBox

adb shell find "/sdcard/Folder1" -iname "*.jpg" | tr -d '\015' | while read line; do adb pull "$line"; done;

説明は次のとおりです。

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.

スクリプトは一番上のフォルダから始まり、再帰的に下に移動してすべての「* .jpg」ファイルを見つけ、電話から現在のディレクトリにプルします。

于 2012-04-08T04:41:23.097 に答える
74

ディレクトリのプルは、新しい Android ツールで利用できます。(どのバージョンから追加されたのかはわかりませんが、最新の 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)
于 2013-03-09T17:50:16.997 に答える
44

ファイルをプルしたい場所からのパスを指定してみてください。SDカードからファイルを取得したばかりです

adb pull sdcard/

*検索を広げたり、除外したりすることを好まないでください。例: adb pull sdcard/*.txt--> これは無効です。

ただ与えるadb pull sdcard/

于 2013-03-12T19:18:09.107 に答える
6

はい、末尾のスラッシュを使用して、ディレクトリを再帰的にプルします。Nexus 5 と現在のバージョンの adb (2014 年 3 月) で動作します。

于 2014-03-11T10:54:37.527 に答える
3

ADB バージョン 1.0.32 の Android 6 では、コピーするフォルダーの後ろに / を置く必要があります。例えばadb pull "/sdcard/".

于 2016-09-01T04:05:08.803 に答える
1

ジェリービーンを使用してcmdを開始するだけの場合は、 adb devices と入力して読み取り可能であることを確認し、 adb pull sdcard/ sdcard_(日付または追加) と入力します <---このファイルは事前に adb ディレクトリに作成する必要があります。利益!

他のバージョンでは、 adb pull mnt/sdcard/ sdcard_(日付または追加) と入力します。

ファイルを作成することを忘れないでください。そうしないと、混乱するか、機能しません。

于 2013-11-04T05:10:26.500 に答える