ADB 迭代拉取

ADB pull iteratively

标题可能措辞不当,但本质上我朋友的Galaxy S6在启动约30秒后一直重启,原因是错误:System UI has stopped working

我正在尝试恢复目录 /mnt/sdcard/DCIM/ 中包含的所有图片,但是 phone 在我使用 adb pull /mnt/sdcard/DCIM/ 复制了大约 80 张图片后重新启动。我怎样才能一次复制80个然后休眠20秒,然后拉下一个80?

我最终得出的解决方案是这样的:

获取该目录中所有文件的列表,然后遍历其中的一些文件,如果由于设备重启导致复制失败,请稍等片刻再试。如果该文件已被复制,请跳过该文件。

$outputDirectory = "C:\Temp\RecoveredPictures"
$amount = 100
adb shell find /mnt/sdcard/DCIM/Camera -type f > C:\Temp\PictureNames.txt

$files = Get-Content C:\Temp\PictureNames.txt

for ($i = 0; $i -lt $files.Length; $i++) {
    $file = $files[$i]

    $fileName = $file.Split("/")[-1]

    if (Test-Path $outputDirectory$fileName) {
        continue
    }

    Write-Host "File name is $file"
    adb pull $file $outputDirectory$fileName

    if ($error[0].ToString() -like "error: device '(null)' not found") {
        $i--
        sleep 1
    }
}