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


14

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

Это на Windows 7.

Ответы:


15

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

xcopy $SOURCE $DESTINATION /C /E /Q 

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

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

xcopy d:\*.* c:\recovery /C /E /Q

почему нет cp??
Вине Менон

2
@VineetMenon Предполагая, что вы имеете в виду команду копирования, это потому, что она не имеет характера «продолжить, несмотря на ошибки», который запрашивает спрашивающий. Если вы имеете в виду команду Linux cp, то это потому, что вопрос связан с Windows 7.
Rilgon Arcsinh

ооо ... я имел cpв виду, как в Windows, не знал о возможности игнорирования без ошибок !! :( THX
Vineet Менон


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 должен скопировать все файлы и подкаталоги в указанный каталог. Продолжит копирование, несмотря на ошибку с указанным файлом. Для каждого испорченного файла, который команда не может скопировать, вы получите много красного вывода в консоли. Если вы не хотите их видеть, измените ошибку, чтобы продолжить.


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


1

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.