5

Чтобы найти все новые файлы и подпапки в некоторой корневой папке (скажем, «Документы») и скопировать их на другой диск (в данном случае J: :)

Используемая командная строка:

robocopy c:\users\valery\ Documents j:\ robocopy /XO /E /MAXAGE:20131030 /XD

Результат: создано полное дерево папок. Только новые файлы скопированы, как предполагается. Хорошо

Дело в том, что я не хочу создавать все подпапки на целевом диске, если в них нет новых файлов.

Результаты приемлемы, но есть много работы, чтобы просмотреть все папки и найти новые файлы, а также понять, какие подпапки являются новыми

4 ответа4

6

Вы можете добавить /S для этого. Вам не нужен \E для копирования пустых каталогов. Вам даже не понадобится \XO который делает \MAXAGE .

/S :: copy Подкаталоги, но не пустые.

Если в каталоге не скопированы файлы, каталог не создается в месте назначения.

robocopy c:\users\valery\documents j:\robocopy /S /MAXAGE:20131030 /XD {directories_to_exclude}

Если у вас нет каталогов для исключения, вы можете просто использовать:

robocopy c:\users\valery\documents j:\robocopy /S /MAXAGE:20131030

Вы можете сделать robocopy /? за всю помощь.

 /S :: copy Subdirectories, but not empty ones.
 /E :: copy subdirectories, including Empty ones.
 /XD dirs [dirs]... :: eXclude Directories matching given names/paths.
 /XO :: eXclude Older files.
 /MAXAGE:n :: MAXimum file AGE - exclude files older than n days/date.
3

Мои простые команды, которые прекрасно работают:

RoboCopy.exe  "\\\SourceServer\Folder" "X:\WEB" /copy:datso /mir /fft /r:0 /w:0 /secfix /mt:20 /xo /xf thumbs.db /log+:X:\TON-FS4.log /nc /ns /np /ndl /nfl /tee

Объяснение:X:\WEB - моя папка назначения.

Переключатели:
/copy:datso: Определяет свойства файла для копирования:
(d: данные, a: атрибуты, t: метки времени, s: список управления доступом NTFS (ACL), o: информация о владельце)
/mir: отражает дерево каталогов
/ FFT: Предполагается время файла FAT, важно при копировании данных
/ r: 0: количество повторных попыток при неудаче
/ w: 0: время ожидания между попытками 0 секунд
/ secfix: исправляет безопасность файлов для всех файлов, даже пропущенных
/ MT: 20: создает 20 потоков копий
/ xo: Исключает старые файлы - если целевой файл существует и имеет ту же дату или новее, чем исходный - не пытайтесь перезаписать его.
/ xf thumbs.db: Исключая файлы "thumbs.db" (путь), здесь можно использовать дикие символы (например: * .mp3)
/log+:filename.log: записывает вывод состояния в указанный файл журнала.
(добавляет к существующему файлу журнала) или использовать новый журнал просто /log:filename.log

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

1
robocopy.exe "Q:\TEST" "T:\TEST" /E /XO /LOG+:"T:test.log

Просто чтобы разобраться с этим для bertieb - этот код предназначен для запуска прямо из командной строки, а не в скрипте bat.

Установить источник и пункты назначения:

robocopy.exe "Q:\TEST" "T:\TEST"

"Q:\TEST" = Устанавливает исходный каталог в подключенный диск "Q"

"T:\TEST" = Устанавливает каталог назначения на подключенный диск "T"

Используемые опции:

/E /XO /LOG+:"T:test.log"
  1. /E : Копировать подкаталоги, включая пустые
  2. /XO : исключить старые файлы
  3. LOG+ : это запишет процесс robocopy в файле .log с именем test, который будет находиться в корневом каталоге места назначения (т.е. над папкой "TEST" на T). LOG+ добавит выходной статус в файл test.log, а не перезаписывает его.

ПРИМЕЧАНИЕ:

Параметр LOG+ можно переключить на параметр LOG, если вы хотите сохранить только самую свежую информацию о сеансе.

Легко читаемая версия дополнительной информации о Robocopy или документации Microsoft.

0

robocopy.exe "Q:\TEST" "T:\TEST" /E /XO /LOG+:"T:test.log "

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .