2016-10-29 4 views
0

Der Titel wahrscheinlich schlecht formuliert ist, aber im Wesentlichen nach dem meines Freundes Galaxy S6 hält Neustart gestartet bis etwa 30 Sekunden aufgrund des Fehlers: System UI has stopped workingADB ziehen iterativ

Ich versuche, alle Bilder zu erholen enthalten innerhalb des Verzeichnisses /mnt/sdcard/DCIM/ aber das Telefon startet neu, nachdem ich ungefähr 80 von ihnen unter Verwendung adb pull /mnt/sdcard/DCIM/ kopiere. Wie kann ich 80 auf einmal kopieren und dann für etwa 20 Sekunden schlafen und die nächsten 80 ziehen?

+0

Sie sind lange genug dabei, um zu wissen, dass StackOverflow nicht der richtige Ort ist, um Hilfe bei Ihren Endbenutzerproblemen zu erhalten. Aber Sie können selbst anfangen, eine Lösung für Ihr Problem zu entwickeln (ein grundlegendes Skript in Ihrem Fall) und dann um Hilfe bei den Problemen bitten, mit denen Sie beim Programmieren konfrontiert wurden. –

+0

@AlexP. Ich dachte, es gäbe vielleicht eine andere Möglichkeit, 'adb pull' mit Argumenten zu verwenden, aber ich gehe davon aus, dass es nicht auf Ihrer Eingabe beruht. Ich habe meine Lösung als Antwort veröffentlicht. –

Antwort

0

Die Lösung, die ich mit kommen endete, war dies:

Hier finden Sie eine Liste aller Dateien in dem Verzeichnis, dann durchlaufen eine Reihe von ihnen, wenn das Kopieren aufgrund Neustart des Gerätes ausfällt, dann wird eine Wartezeit Sekunde und versuche es noch einmal. Wenn die Datei bereits kopiert wurde, überspringen Sie diese Datei.

$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 
    } 
} 
+0

Was passiert mit der Datei, wenn das Telefon mitten in der Übertragung neu gestartet wird? –

+0

Dann tritt der Fehler 'error: device '(null)' not founds 'auf und es schläft, bis der Fehler nicht gefunden wird, wiederholt versucht, die Datei zu kopieren, die nicht kopiert werden konnte. Einige Dateien werden jedoch beschädigt, wenn sie sich in der Mitte einer Übertragung befinden und das Skript nicht darauf achtet. Ich musste manuell durchgehen und sicherstellen, dass sie nicht beschädigt waren und löschte diejenigen, die waren und neu kopieren. Auf keinen Fall konnte ich leicht überprüfen, ob die Dateien erfolgreich kopiert wurden oder nicht. –

+0

zumindest könnte man "finden" drucken Sie die Dateigrößen zusammen mit den Namen und überprüfen Sie auch diese - 'find -L/sdcard/DCIM/Kamera-Typ f -exec stat -c '% s% n' {} \; ' –