понедельник, 28 октября 2019 г.

Robocopy это очень круто

Иногда, в 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] Добавляет указанные атрибуты к копируемым файлам. Допустимые значения для этой опции:
R - Read only
A - Archive
S - System
H - Hidden
C - Compressed
N - Not content indexed
E - Encrypted
T - Temporary
/a-:[RASHCNETO] Удаляет указанные атрибуты из скопированных файлов. Допустимые значения для этой опции:
R - Read only
A - Archive
S - System
H - Hidden
C - Compressed
N - Not content indexed
E - Encrypted
T - Temporary
O - Offline
/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] Включает только файлы, для которых задан любой из указанных атрибутов. Допустимые значения для этой опции:
R - Read only
A - Archive
S - System
H - Hidden
C - Compressed
N - Not content indexed
E - Encrypted
T - Temporary
O - Offline
/xa:[RASHCNETO] Исключает файлы, для которых задан любой из указанных атрибутов. Допустимые значения для этой опции:
R - Read only
A - Archive
S - System
H - Hidden
C - Compressed
N - Not content indexed
E - Encrypted
T - Temporary
O - Offline
/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

X-Plane 11, 12 - любитель, Фото любитель со стажем

Постоянные читатели

Архив блога