Skopiuj wiele plików ignorując błędy

14

Próbuję skopiować pliki z uszkodzonego dysku twardego. Nie wszystkie z nich zostaną skopiowane - niektóre mają błędy CRC i przestają działać. Chciałbym pominąć te pliki i kontynuować resztę kopii - ale proces kopiowania zatrzymuje się, dopóki nie kliknę jednej z opcji w oknie błędu. Czy istnieje sposób, aby skopiować wszystko, powiedzieć systemowi operacyjnemu, aby pomijał ten monit i po prostu nie kopiował uszkodzonych plików?

To jest na Windows 7.

Goro
źródło

Odpowiedzi:

15

Najszybszym sposobem byłoby prawdopodobnie użycie xcopy poprzez instancję wiersza polecenia w kontekście podobnym do:

xcopy $SOURCE $DESTINATION /C /E /Q 

Flaga / C zmusza xcopy do ignorowania problemów z kopiowaniem; flaga / E nakazuje xcopy kopiowanie folderów (nawet pustych), a flaga / Q sprawia, że ​​jest to cicha operacja (w przeciwnym razie otrzymasz wpis dla każdej skopiowanej rzeczy).

Przykładem może być:

xcopy d:\*.* c:\recovery /C /E /Q
Rilgon Arcsinh
źródło
dlaczego nie cp??
Vineet Menon,
2
@VineetMenon Zakładając, że masz na myśli polecenie kopiowania, to dlatego, że nie ma ono natury „kontynuuj pomimo błędów”, o którą pytający pyta. Jeśli chodzi ci o komendę Linux cp, to dlatego, że pytanie dotyczy Windows 7.
Rilgon Arcsinh
ooh ... miałem na myśli, cpjak w systemie Windows, nie wiedziałem o możliwości ignorowania błędów bez błędów !! :( thx
Vineet Menon,
6
 robocopy.exe with /r:0 /w:0 

dla pierwszego przejścia, a następnie zwiększ do /r:1

fstx
źródło
Robocopy jest częścią „Windows Server 2003 Resource Kit Tools”, którą można pobrać tutaj: microsoft.com/download/en/details.aspx?id=17657
LawrenceC
3
Tak, ale jest to również część systemu Windows 7
fstx
3

Może jakiś prosty fragment PowerShell?

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

Aby uruchomić, otwórz konsolę PowerShell (dostępną w każdym systemie Windows od XP), zmień parametry -path i -directory do folderu początkowego i docelowego, skopiuj polecenie do okna PS i naciśnij klawisz Enter. Jeśli nie możesz skopiować, włącz tryb szybkiej edycji we właściwościach konsoli - ta opcja wklejania map pod prawym przyciskiem myszy w Win7.

Może wymagać zamykania ścieżek w cudzysłowie '', jeśli w nazwach występują specjalne znaki, takie jak białe znaki.

To uruchomienie w Powershell powinno skopiować wszystkie pliki i podkatalogi do określonego katalogu. Kopiowanie będzie kontynuowane pomimo błędu określonego pliku. Za każdy uszkodzony plik, którego polecenie nie może skopiować, otrzymasz wiele czerwonych danych wyjściowych w konsoli. Jeśli nie chcesz ich widzieć, zmień opcję erroraction na Silentlycontinue.

M'cin
źródło
2

W przeszłości korzystałem z TeraCopy . Inną opcją byłaby kopia na poziomie bloku - na przykład za pomocą narzędzia dd lub narzędzia do klonowania dysku. Osobiście uruchomiłbym system z płyty CD z systemem Linux na żywo i używałbym dd_rescue / ddrescue, jeśli dane są ważne.

obrabować
źródło
1

Natknąłem się na „Unstoppable Copier” Roadkila. Ma jako interfejs graficzny i został zaprojektowany specjalnie do tych przypadków.

Decio
źródło