Иногда, в Windows 10 home приходится копировать большое количество файлов, например 3000 или больше. Я обычно пользуюсь explore'ром. Для простоты. Но в данном случае он очень нудит. Да, при большом объеме этих файлов, операция копирования может аварийно закончится из-за нехватки ресурсов. Причина этого в том, что Windows хочет быть "взрослым" - он применяет транзакционность. Сначала копирует файлы в буфер, а потом уж на место. Если что-то не вышло, то откат и вы ничего не скопировали.
Что бы выполнить копирование без этих "танцев с бубном" можно использовать программу robocopy
robocopy директория-источник директория-цель [нужные-файлы|*.*] /MIR
Все файлы быстро скопированы. У этой программы море опций и режимов. При указании опции /MIR скопированы будут входящие директории.
Пример копирования 9 Гигабайт на флэшку F:
C:\Users\User>robocopy H:\Downloads\Архивы F:\ simHeaven_X-World-Europe-1.2-full.7z
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------
Начало: 10 ноября 2022 г. 17:22:16
Источник : H:\Downloads\Архивы\
Назначение : F:\
Файлы: simHeaven_X-World-Europe-1.2-full.7z
Параметры: /DCOPY:DA /COPY:DAT /R:1000000 /W:30
------------------------------------------------------------------------------
1 H:\Downloads\Архивы\
100% Новый файл 9.0 g simHeaven_X-World-Europe-1.2-full.7z
------------------------------------------------------------------------------
ВсегоСкопировано ПропущеноНесоответствие СБОЙДополнения
Каталогов : 1 0 1 0 0 0
Файлов : 1 1 0 0 0 0
Байт : 9.016 g 9.016 g 0 0 0 0
Время : 0:23:27 0:23:27 0:00:00 0:00:00
Скорость : 6877428 Байт/сек.
Скорость : 393.529 МБ/мин.
Для копирования директории, включая пустые файлы:
robocopy директория-источник директория-цель /e
Для тех кто хочет покопаться в документации перевод от Google:
-----------------------------------
ROBOCOPY
Article
02/03/2023
Копирование файлов с данными с одного места на другое.
Синтаксис
> robocopy <source> <destination> [<file>[ ...]] [<options>]
Например, чтобы скопировать файл с именем yearly-report.mov из c:\reports в общую папку \\marketing\videos с включением многопоточности для повышения производительности (с параметром /mt) и возможностью перезапуска передачи, если он прерван (с параметром /z), введите:
> robocopy c:\reports "\\marketing\videos" yearly-report.mov /mt /z
Важно
Если какие-либо данные копируются из корня устройства, каталог назначения примет атрибут «скрытый» в процессе копирования.
Параметры
Параметр | Описание |
<source> | Задает путь к исходной директории. |
<destination> | Задает путь к конечной директории. |
<file> | Задает файл или файлы, которые нужно копировать. Символы замены поддерживаются (* or ?). Если вы не задаете эти параметры, используется *.*. |
<options> | Задает параметры для использования с командой robocopy, включая параметры копирования, файла, повторной попытки, ведения журнала и задания. |
Параметры копирования
Параметр Описание
/s Копирует подкаталоги. Этот параметр автоматически исключает пустые каталоги.
/e Копирует подкаталоги. Этот параметр автоматически включает пустые каталоги.
/lev:<n> Копирует только верхние n уровней исходного дерева каталогов.
/z Копирует файлы в перезапускаемом режиме. В перезапускаемом режиме, если копирование файла будет прервано, Robocopy может продолжить с того места, где оно было остановлено, вместо повторного копирования всего файла.
/b Копирует файлы в режиме резервного копирования, позволяя Robocopy переопределять настройки прав доступа к файлам и папкам (ACL). Это позволяет копировать файлы, к которым у вас в противном случае не было бы доступа, при условии, что они запускаются под учетной записью с достаточными привилегиями.
/zb Копирует файлы в перезапускаемом режиме. Если доступ к файлу запрещен, переключается в режим резервного копирования.
/j Копирует с использованием небуферизованного ввода-вывода (рекомендуется для больших файлов).
/efsraw Копирует все зашифрованные файлы в режиме EFS RAW.
/copy:<copyflags> Указывает, какие свойства файла копировать. Допустимые значения для этого параметра:
D - Data
A - Attributes
T - Time stamps
X - Skip alt data streams
S - NTFS access control list (ACL)
O - Owner information
U - Auditing information
Значением по умолчанию для параметра /COPY является DAT (данные, атрибуты и метки времени). Флаг X будет игнорироваться, если используется /B или /ZB.
/dcopy:<copyflags> Указывает, что копировать в каталоги. Допустимые значения для этого параметра:
D - Data
A - Attributes
T - Time stamps
E - Extended attribute
X - Skip alt data streams
Значение по умолчанию для этого параметра — DA (данные и атрибуты).
/sec Копирует файлы с безопасностью (эквивалентно /copy:DATS).
/copyall Копирует всю информацию о файле (эквивалентно /copy:DATSOU).
/nocopy Не копирует информацию о файле (полезно с /purge).
/secfix Исправляет безопасность файлов для всех файлов, даже для пропущенных.
/timfix Исправляет время файла для всех файлов, даже пропущенных.
/purge Удаляет конечные файлы и каталоги, которых больше нет в источнике. Использование этого параметра с параметром /e и целевым каталогом позволяет не перезаписывать параметры безопасности целевого каталога.
/mir Отражает дерево каталогов (эквивалентно /e плюс /purge). Использование этого параметра с параметром /e и целевым каталогом перезаписывает параметры безопасности целевого каталога.
/mov Перемещает файлы и удаляет их из источника после копирования.
/move Перемещает файлы и каталоги и удаляет их из источника после копирования./a+:[RASHCNET] Добавляет указанные атрибуты к копируемым файлам. Допустимые значения для этой опции:
/a-:[RASHCNETO] Удаляет указанные атрибуты из скопированных файлов. Допустимые значения для этой опции:
/create Создает только дерево каталогов и файлы нулевой длины.
/fat Создает целевые файлы, используя только имена файлов FAT длиной 8,3 символа.
/256 Отключает поддержку путей длиннее 256 символов.
/mon:<n> Отслеживает источник и запускается снова, когда обнаруживается более n изменений.
/mot:<m> Отслеживает источник и запускается снова через m минут, если обнаружены изменения.
/rh:hhmm-hhmm Указывает время выполнения, когда могут быть запущены новые копии.
/pf Проверяет время выполнения для каждого файла (не для каждого прохода).
/ipg:<n> Определяет интервал между пакетами для освобождения полосы пропускания на медленных линиях.
/sj Копирует соединения (мягкие ссылки) на путь назначения вместо целевых ссылок.
/sl Не переходите по символическим ссылкам, а вместо этого создайте копию ссылки.
/mt:<n> Создает многопоточные копии с n потоками. n должно быть целым числом от 1 до 128. Значение по умолчанию для n равно 8. Для повышения производительности перенаправьте вывод с помощью параметра /log.
Параметр /mt нельзя использовать с параметрами /ipg и /efsraw.
/nodcopy Не копирует информацию о каталоге (по умолчанию выполняется /dcopy:DA).
/nooffload Копирует файлы без использования механизма Windows Copy Offload.
/compress Запрашивает сжатие сети во время передачи файла, если применимо.
/sparse Включает сохранение разреженного состояния во время копирования.
Важно
При использовании параметра копирования /secfix укажите тип информации о безопасности, которую вы хотите скопировать, с помощью одного из этих дополнительных параметров копирования:
/copyall
/copy:o
/copy:s
/copy:u
/sec
Замечание
Параметр /mt появился в Windows Server 2008 R2, и его функциональные возможности применимы к текущим версиям Windows Server.
Скопируйте параметры регулирования файлов
Параметр Описание
/iomaxsize:<n>[kmg] Запрошенный максимальный размер ввода-вывода на цикл чтения/записи в n килобайтах, мегабайтах или гигабайтах.
/iorate:<n>[kmg] Запрошенная скорость ввода-вывода в n килобайт мегабайтах или гигабайтах в секунду.
/threshold:<n>[kmg] Пороговое значение размера файла для регулирования в n килобайтах, мегабайтах или гигабайтах (см. примечания).
Параметры выбора файла
Параметр Описание
/a Копирует только файлы, для которых установлен атрибут Архив.
/m Копирует только файлы, для которых установлен атрибут Архив, и сбрасывает атрибут Архив.
/ia:[RASHCNETO] Включает только файлы, для которых задан любой из указанных атрибутов. Допустимые значения для этой опции:
/xa:[RASHCNETO] Исключает файлы, для которых задан любой из указанных атрибутов. Допустимые значения для этой опции:
/xf <filename>[ ...] Исключает файлы, соответствующие указанным именам или путям. Подстановочные знаки (* и ?) поддерживаются.
/xd <directory>[ ...] Исключает каталоги, соответствующие указанным именам и путям.
/xc Исключает существующие файлы с такой же отметкой времени, но с разными размерами.
/xn Файлы исходного каталога, более новые, чем место назначения, исключаются из копии.
/xo Файлы исходного каталога, которые старше целевого, исключаются из копии.
/xx Исключает дополнительные файлы и каталоги, присутствующие в месте назначения, но не в источнике. Исключение дополнительных файлов не приведет к удалению файлов из места назначения.
/xl Исключает «одинокие» файлы и каталоги, присутствующие в источнике, но не в месте назначения. Исключение одиночных файлов предотвращает добавление новых файлов в место назначения.
/im Включить измененные файлы (разное время изменения).
/is Включает в себя те же файлы. Одни и те же файлы идентичны по имени, размеру, времени и всем атрибутам.
/it Включает в себя "подправленные" файлы. Подправленные файлы имеют одинаковое имя, размер и время, но разные атрибуты.
/max:<n> Указывает максимальный размер файла (чтобы исключить файлы размером более n байтов).
/min:<n> Задает минимальный размер файла (чтобы исключить файлы размером менее n байт).
/maxage:<n> Указывает максимальный возраст файла (чтобы исключить файлы старше n дней или даты).
/minage:<n> Указывает минимальный возраст файла (исключая файлы старше n дней или даты).
/maxlad:<n> Указывает максимальную дату последнего доступа (исключая файлы, неиспользуемые с n).
/minlad:<n> Указывает минимальную дату последнего доступа (исключая файлы, используемые с n). Если n меньше 1900, n указывает количество дней. В противном случае n указывает дату в формате ГГГГММДД.
/xj Исключает точки соединения, которые обычно включаются по умолчанию.
/fft Предполагается время файла FAT (с точностью до двух секунд).
/dst Компенсирует часовую разницу во времени летнего времени.
/xjd Исключает точки соединения для каталогов.
/xjf Исключает точки соединения для файлов.
Параметры повтора
Параметр Описание
/r:<n> Указывает количество повторных попыток для неудачных копий. Значение по умолчанию n равно 1 000 000 (один миллион повторных попыток).
/w:<n> Указывает время ожидания между повторными попытками в секундах. Значение n по умолчанию равно 30 (время ожидания 30 секунд).
/reg Сохраняет значения, указанные в параметрах /r и /w, как параметры по умолчанию в реестре.
/tbd Указывает, что система будет ожидать определения имен общих ресурсов (повторная ошибка 67).
/lfsm Работа в режиме ограниченного свободного места, который позволяет копировать, приостанавливать и возобновлять (см. Примечания).
/lfsm:<n>[kmg] Задает минимальный размер в n килобайтах, мегабайтах или гигабайтах.
Параметры ведения журнала
Параметр Описание
/l Указывает, что файлы должны быть только перечислены (а не скопированы, удалены или проставлены метки времени).
/x Сообщает обо всех дополнительных файлах, а не только о выбранных.
/v Создает подробный вывод и показывает все пропущенные файлы.
/ts Включает временные метки исходного файла в выходные данные.
/fp Включает в вывод полные пути к файлам.
/bytes Печатает размеры в байтах.
/ns Указывает, что размеры файлов не должны регистрироваться.
/nc Указывает, что классы файлов не должны регистрироваться.
/nfl Указывает, что имена файлов не должны регистрироваться.
/ndl Указывает, что имена каталогов не должны регистрироваться.
/np Указывает, что ход операции копирования (количество файлов или каталогов, скопированных на данный момент) не будет отображаться.
/eta Показывает предполагаемое время прибытия (ETA) скопированных файлов.
/log:<logfile> Записывает вывод состояния в файл журнала (перезаписывает существующий файл журнала).
/log+:<logfile> Записывает вывод состояния в файл журнала (добавляет вывод в существующий файл журнала).
/unilog:<logfile> Записывает выходные данные о состоянии в файл журнала в виде текста в формате Unicode (перезаписывает существующий файл журнала).
/unilog+:<logfile> Записывает выходные данные о состоянии в файл журнала в виде текста Unicode (добавляет выходные данные в существующий файл журнала).
/tee Записывает вывод состояния в окно консоли и в файл журнала.
/njh Указывает, что заголовок задания отсутствует.
/njs Указывает, что сводка задания отсутствует.
/unicode Отображает вывод состояния в виде текста Unicode.
Параметры задания
Параметр Описание
/job:<jobname> Указывает, что параметры должны быть получены из указанного файла задания. Чтобы запустить /job:jobname, вы должны сначала запустить параметр /save:jobname, чтобы создать файл задания.
/save:<jobname> Указывает, что параметры должны быть сохранены в указанный файл задания. Это должно быть запущено перед запуском /job:jobname. Перед этим параметром должны быть указаны все параметры копирования, повтора и ведения журнала.
/quit Выходит после обработки командной строки (для просмотра параметров).
/nosd Указывает, что исходный каталог не указан.
/nodd Указывает, что каталог назначения не указан.
/if Включает указанные файлы.
Замечания
Использование /PURGE или /MIR в корневом каталоге тома ранее приводило к тому, что robocopy также применяла запрошенную операцию к файлам в каталоге System Volume Information. Это больше не так, поскольку если какой-либо из них указан, robocopy пропустит любые файлы или каталоги с таким именем в исходном и целевом каталогах верхнего уровня сеанса копирования.
Если указаны параметры /IoMaxSize или /IoRate, robocopy включит регулирование файлов копирования для снижения нагрузки на систему. Оба могут быть настроены на оптимальные значения и параметры копирования, но системе и robocopy разрешено настраивать их на допустимые значения по мере необходимости.
Если используется параметр /Threshold, он указывает минимальный размер файла для включения регулирования. Файлы меньше этого размера не будут регулироваться. За значениями всех трех параметров может следовать необязательный символ суффикса, такой как [KMG] (килограмм, мега, гига).
Использование /LFSM запрашивает robocopy для работы в «режиме с низким объемом свободного места». В этом режиме robocopy будет приостанавливаться всякий раз, когда копирование файла приведет к тому, что свободное пространство на целевом томе упадет ниже минимального значения. Это значение можно явно указать с помощью флага /LFSM:n[KMG].
Если параметр /LFSM указан без явного минимального значения, минимальное значение устанавливается равным 10 % размера целевого тома. Режим малого свободного места несовместим с /MT и /EFSRAW.
Коды выхода (return)
Значение Описание
0 Скопированных файлов нет. No failure was encountered. No files were mismatched. The files already exist in the destination directory; therefore, the copy operation was skipped.
1 Все файлы были успешно скопированы.
2 В директории копирования существуют файлы, которых нет в директории источника. Копирования файлов не было.
3 Некоторые файлы были скопированы. Присутствовали дополнительные файлы. Сбоев не встречалось.
5 Некоторые файлы были скопированы. Некоторые файлы не совпадают. Сбоев не встречалось.
6 Существуют дополнительные файлы и несоответствующие файлы. Никакие файлы не были скопированы, и не было обнаружено сбоев, что означает, что файлы уже существуют в целевом каталоге.
7 Файлы были скопированы, присутствовало несоответствие файлов и присутствовали дополнительные файлы.
8 Несколько файлов не было скопировано.
Замечание
Любое значение равное или большее чем 8 означает, что была как минимум одна ошибка во время операции копирования.
© Microsoft 2023