Мне нужно скопировать несколько каталогов из одного места в другое. Итак, будут несколько операторов xcopy
, один за другим.Параллельная копия с использованием xcopy
Количество файлов в каждой папке огромно. Есть ли способ, с помощью которого я могу запускать эти операторы xcopy
параллельно? Один из вариантов, о котором я могу думать, - вызвать каждый xcopy
в отдельном командном файле и вызвать эти пакетные файлы, используя @start
вместо @call
.
Есть ли другая альтернатива?
Я не пробовал использовать Robocopy. Он использует '/ MT [: number]' right? На самом деле, мне нужно сделать это на Windows XP SP3, поэтому нужно явно получить Robocopy. Однако я не полностью понял его использование '/ MT'. Не могли бы вы рассказать? –
robocopy по умолчанию уже использует 8 потоков для выполнения некоторых своих операций параллельно. Это означает, что вы можете использовать robocopy для копирования всех файлов каталога параллельно. Если вы указали '/ MT: 100', например, robocopy будет копировать до 100 файлов параллельно. Я бы не рекомендовал это делать - 8 - это много. Поэтому, если вы действительно выбрали robocopy вместо xcopy, просто назовите его последовательно. Он скопирует первый каталог параллельно, затем второй каталог и так далее. – Simon
Можете подтвердить комментарий Симона. Я измерил ROBOCOPY из массивного удаленного каталога с выходом сборки с использованием '/ MT:% NUMBER_OF_PROCESSORS%' против '/ MT: 100', а последний выполнял в среднем _ ** на 66% быстрее ** _ на четырехъядерном процессоре i5- 6500. Хотел бы я знать об этом уровне гибкости давным-давно! –