Скопируйте много файлов, игнорируя ошибки

14

Я пытаюсь скопировать файлы с поврежденного жесткого диска. Не все из них будут копировать - некоторые имеют ошибки CRC и останавливаются. Я хотел бы пропустить эти файлы и продолжить с остальной частью копии - но процесс копирования останавливается, пока я не нажму один из параметров в окне ошибки. Есть ли способ для меня, чтобы скопировать все, сказать ОС, чтобы подавить это приглашение и просто не копировать поврежденные файлы?

Это на Windows 7.

Горо
источник

Ответы:

15

Самый быстрый способ - использовать xcopy через экземпляр командной строки в контексте, аналогичном следующему:

xcopy $SOURCE $DESTINATION /C /E /Q 

Флаг / C заставляет xcopy игнорировать любые проблемы с копированием; флаг / E приказывает xcopy копировать папки (даже пустые), а флаг / Q делает это тихой операцией (в противном случае вы получите запись для каждой копируемой вещи).

Примером может быть:

xcopy d:\*.* c:\recovery /C /E /Q
Rilgon Arcsinh
источник
почему нет cp??
Вине Менон
2
@VineetMenon Предполагая, что вы имеете в виду команду копирования, это потому, что она не имеет характера «продолжить, несмотря на ошибки», который запрашивает спрашивающий. Если вы имеете в виду команду Linux cp, то это потому, что вопрос связан с Windows 7.
Rilgon Arcsinh
ооо ... я имел cpв виду, как в Windows, не знал о возможности игнорирования без ошибок !! :( THX
Vineet Менон
6
 robocopy.exe with /r:0 /w:0 

за первый проход, затем увеличьте до /r:1

fstx
источник
Robocopy является частью «Инструментов для Windows Server 2003 Resource Kit», которые вы можете скачать здесь: microsoft.com/download/en/details.aspx?id=17657
LawrenceC
3
Да, но это также часть Windows 7
fstx
3

Может быть, какой-нибудь простой фрагмент Powershell?

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

Чтобы запустить, откройте консоль Powershell (доступна в каждой Windows начиная с XP), измените параметры -path и -directory в вашей начальной и целевой папке, скопируйте команду в окно PS и нажмите enter. Если вы не можете скопировать, включите режим быстрого редактирования в свойствах консоли - эта опция вставки карт под правой кнопкой мыши в Win7.

Может потребоваться закрытие путей в кавычках '', если в именах есть специальные знаки, например, пробел.

Этот запуск в Powershell должен скопировать все файлы и подкаталоги в указанный каталог. Продолжит копирование, несмотря на ошибку с указанным файлом. Для каждого испорченного файла, который команда не может скопировать, вы получите много красного вывода в консоли. Если вы не хотите их видеть, измените ошибку, чтобы продолжить.

M'cin
источник
2

В прошлом я использовал TeraCopy . Другим вариантом будет копирование на уровне блоков - например, с использованием dd или утилиты клонирования диска. Лично я загрузился бы с живого компакт-диска Linux и использовал dd_rescue / ddrescue, если данные важны.

грабить
источник
2

Параметр xcopy завершится с ошибкой «Недостаточно места». Смотрите эту ссылку, например:

http://en.wikipedia.org/wiki/XCOPY#Limitation

Сначала я попробовал xcopy, как предложил пользователь, но затем я использовал robocopy, который включен в Windows 7, и это удалось:

Robocopy источник назначения / E

/ E рекурсивно с пустыми каталогами.

http://en.wikipedia.org/wiki/Robocopy#Common_usage_scenarios

DaveCore82
источник
1

Я наткнулся на «Неудержимый копир Roadkil». Он имеет графический интерфейс и был разработан специально для этих случаев.

Дечио
источник