Как удалить все файлы/папки из папки «А», которых нет в папке «Б», используя пакетные сценарии Windows?

Как удалить все файлы/папки из папки «А», которых нет в папке «Б», используя пакетные сценарии Windows?

Например, папка A имеет следующее содержимое:
Dir1 -> File1
Dir2 (без файлов)
Dir3 -> File2
Dir4 (без файлов)
File3
File4
Dir5 -> File5

Папка B имеет следующее содержимое:
Dir3 -> File2
Dir4 (нет файлов)
File3
File5

При запуске скрипта из папки A будут удалены:
Dir1 вместе с File1
Dir2
File4
Dir5 вместе с Файл5


person raptor    schedule 18.06.2014    source источник


Ответы (1)


robocopy folderB folderA /purge /nocopy

Это должно удалить все элементы в папке A, отсутствующие в папке B, без копирования чего-либо из папки B в папку A.

person MC ND    schedule 18.06.2014
comment
Спасибо! Сделал работу! :) Если я не добавлю [/nocopy], это сделает две папки идентичными, не нарушая ничего в папке B? - person raptor; 18.06.2014
comment
@user2494926 user2494926, чтобы сделать две папки идентичными, используйте /mir для зеркального источника. Во всяком случае, источник никогда не беспокоить. Все изменения вносятся в target. - person MC ND; 18.06.2014
comment
Будут ли robocopy folderB folderA /purge и robocopy folderB folderA /mir делать одно и то же? Я запускал обе команды, разницы не заметил. Извините, я новичок в пакетных командах Windows. - person raptor; 18.06.2014
comment
@raptor, /mir = /purge + /e , то есть /mir включает рекурсию по подпапкам. - person MC ND; 18.06.2014
comment
Ладно, понял! Должен был прочитать справку по robocopy раньше. Спасибо! - person raptor; 18.06.2014