You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 11 PowerShell中如何用ADB通配符批量复制Android文件?

在Windows 11 PowerShell中用adb批量拉取Android设备的JSON文件

问题原因

在Linux/macOS的bash/zsh等环境中,*.json这类通配符会被本地shell先解析为实际的文件名列表,再传递给adb;但Windows PowerShell不会自动做这个解析,而是直接把*.json作为字符串发送给adb,导致adb在Android设备上查找名为*.json的文件,自然找不到,从而报错。

解决方案

以下是几种可行的批量拉取方法:

方法1:用adb shell的ls过滤文件名后批量拉取

利用Android设备的shell解析通配符,获取所有JSON文件的列表,再在PowerShell中遍历拉取:

# 只输出JSON文件名(-1参数让ls每行返回一个文件名)
.\adb.exe shell ls -1 /sdcard/*.json | ForEach-Object {
    .\adb.exe pull "/sdcard/$_"
}

方法2:用tar打包后传输(高效适配大量文件)

如果设备自带tar命令(现代Android基本都预装),可以先在设备上打包所有JSON文件,再传输到本地解压,这种方式比逐个拉取效率高很多:

# 打包设备上的JSON文件并传输到本地,直接解压到指定目录
.\adb.exe exec-out 'tar -czf - /sdcard/*.json' | Expand-Archive -DestinationPath .\json-files -Force
  • 说明:exec-out让adb把设备shell的输出直接传到本地,tar -czf -表示将文件打包成gzip压缩包并输出到标准输出,本地用Expand-Archive解压到./json-files目录。

方法3:拉取整个目录(若不在意其他文件)

如果/sdcard/下的其他文件也可以一起拉取,直接拉取整个目录是最简单的方式:

.\adb.exe pull /sdcard/ ./local-sdcard-backup

此命令会将设备/sdcard/下的所有文件和子目录复制到本地的local-sdcard-backup文件夹中。

方法4:用find命令精准筛选文件

如果需要更复杂的筛选条件(比如按文件修改时间筛选),可以用find命令生成文件列表再拉取:

# 生成所有JSON文件的完整路径列表到本地文件
.\adb.exe shell find /sdcard -type f -name "*.json" > json-files.txt

# 遍历列表拉取每个文件
Get-Content json-files.txt | ForEach-Object {
    .\adb.exe pull $_
}

内容的提问来源于stack exchange,提问作者Leszek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 02:38:17