Kopieren Sie viele Dateien und ignorieren Sie dabei Fehler

14

Ich versuche, Dateien von einer beschädigten Festplatte zu kopieren. Nicht alle von ihnen werden kopiert - einige haben CRC-Fehler und werden blockiert. Ich möchte diese Dateien überspringen und mit dem Rest der Kopie fortfahren - aber der Kopiervorgang wird angehalten, bis ich auf eine der Optionen im Fehlerfenster klicke. Gibt es eine Möglichkeit für mich, alles zu kopieren, das Betriebssystem anzuweisen, diese Eingabeaufforderung zu unterdrücken und die beschädigten Dateien einfach nicht zu kopieren?

Dies ist unter Windows 7.

Goro
quelle

Antworten:

15

Der schnellste Weg wäre wahrscheinlich die Verwendung von xcopy über eine Eingabeaufforderungsinstanz in einem ähnlichen Kontext wie:

xcopy $SOURCE $DESTINATION /C /E /Q 

Das Flag / C zwingt xcopy, Probleme beim Kopieren zu ignorieren. Das Flag / E befiehlt xcopy, Ordner zu kopieren (auch leere), und das Flag / Q macht es zu einem leisen Vorgang (andernfalls erhalten Sie für jedes kopierte Objekt einen Eintrag).

Ein Beispiel wäre:

xcopy d:\*.* c:\recovery /C /E /Q
Rilgon Arcsinh
quelle
warum nicht cp?
Vineet Menon
2
@VineetMenon Angenommen, Sie meinen den Kopierbefehl, liegt dies daran, dass er nicht die vom Fragesteller angeforderte Natur "Trotz Fehlern fortsetzen" aufweist. Wenn Sie den Linux-Befehl cp meinen, liegt das daran, dass die Frage mit Windows 7 zusammenhängt.
Rilgon Arcsinh
ooh ... ich meinte cpwie in Windows, wusste nicht über fehlerfreie Ignorierfunktionen !! :( thx
Vineet Menon
6
 robocopy.exe with /r:0 /w:0 

für einen ersten Durchgang dann erhöhen auf /r:1

fstx
quelle
Robocopy ist Teil der "Windows Server 2003 Resource Kit Tools", die Sie hier herunterladen können: microsoft.com/download/en/details.aspx?id=17657
LawrenceC
3
Ja, aber es ist auch Teil von Windows 7
fstx
3

Vielleicht ein einfaches Powershell-Snippet?

copy-item -path E:\myfolders -destination C:\newfolder -container -force -recurse -erroraction continue -warningaction continue -confirm:$false

Öffnen Sie zum Ausführen die Powershell-Konsole (seit XP in jedem Windows verfügbar), ändern Sie die Parameter -path und -directory in Ihren Start- und Zielordner, kopieren Sie den Befehl in das PS-Fenster und drücken Sie die Eingabetaste. Wenn Sie nicht kopieren können, aktivieren Sie den Schnellbearbeitungsmodus in den Konsoleneigenschaften - diese Option zum Einfügen von Karten unter der rechten Maustaste in Win7.

Möglicherweise müssen Pfade in Anführungszeichen '' geschlossen werden, wenn Namen spezielle Namen enthalten, z. B. Leerzeichen.

Dieser Lauf in Powershell sollte alle Dateien und Unterverzeichnisse in das angegebene Verzeichnis kopieren. Wird trotz eines Fehlers mit der angegebenen Datei weiter kopiert. Für jede fehlerhafte Datei, die dieser Befehl nicht kopieren kann, erhalten Sie viel rote Ausgabe in der Konsole. Wenn Sie diese nicht sehen möchten, ändern Sie die Fehleraktion so, dass sie stillschweigend fortgesetzt wird.

M'cin
quelle
2

In der Vergangenheit habe ich TeraCopy verwendet . Eine andere Option wäre eine Kopie auf Blockebene - beispielsweise mit dd oder einem Dienstprogramm zum Klonen von Datenträgern. Persönlich würde ich von einer Live-Linux-CD booten und dd_rescue / ddrescue verwenden, wenn die Daten wichtig sind.

rauben
quelle
1

Ich bin auf "Roadkil's Unstoppable Copier" gestoßen. Es hat als grafische Oberfläche und wurde speziell für diese Fälle entwickelt.

Decio
quelle