Дополнительно
Robocopy не копирует корневую папку и ее временную метку
Robocopy не копирует корневую папку и ее временную метку - он копирует все подкаталоги и файлы (если установлены соответствующие опции), и, похоже, нет опции/аргумента, чтобы сказать Robocopy, что вы хотите, чтобы сама корневая папка и ее временная метка или атрибуты также были скопированы дословно.
Так, скажем, я хочу скопировать C:/Brushes
Robocopy скопирует все подкаталоги и файлы в папку назначения, но не саму папку Brushes со всеми связанными с ней атрибутами и отметкой времени.
Вы понимаете, о чем я спрашиваю? Это довольно просто, а в Robocopy, похоже, нет такой опции. Люди уже задавали этот вопрос на различных форумах, но, насколько я понимаю, никто так и не ответил на него.
10
3
Попробуйте
md D:\Backup\Brushes && robocopy C:\brushes D:\Backup\Brushes
из командной строки, подставив правильные пути.Если вы объедините
/IF :: Include the following Files.
с/E :: copy subdirectories, including Empty ones.
, вы получите (близкий к желаемому) эффект:Robocopy не предназначен для этого. **Однако есть способ.
Корневая папка содержит, допустим, 50 файлов и 40 папок. Вам нужна только папка X (но вам также нужна отметка времени и даты).
Параметр /DCOPY:T указывает, что нужно сохранить временные метки папок. /XF указывает, какие файлы НЕ копировать, /XD указывает, какие папки НЕ копировать. Просто не указывайте папку c:\X.
Основным недостатком этого способа является изучение всех папок и имен файлов в корне и специальное обращение к ним. Если вы делаете это часто на разных системах, можно написать скрипт.
Пример работы
robocopy c:\testing c:\abc /XF c:\testing\Testing.txt /XD "C:\testing\New Folder (2)" "C:\testing\New Folder (3)" /S /E /SEC /DCOPY:T
Пример работы с корнем
robocopy c:\ d:\ /XF c:\Testing.txt /XD "C:\New Folder (2)" "C:\New Folder (3)" /S /E /SEC /DCOPY:T
Мой тест сработал, я создал несколько папок и подпапок, c:\testing был корнем в этом случае, c:\abc был корнем другого диска (очевидно, что это не совсем так, но для этой цели это должно иметь смысл). Папка, которую я хотел получить из корня, называлась "Новая папка", как вы видите, я не указал ее в /XD. Также убедитесь, что вы указали c:\, иначе имена, которые вы используете, будут глобальными. Другими словами, если я не укажу c:\testing в файле Testing.txt, он будет пропущен из всех копируемых подпапок. Параметр /SEC скопирует все метки безопасности и времени файлов.