Синхронизация двух папок с использованием командного файла

Я хочу использовать пакетный файл для синхронизации двух папок в Windows, и я использую команду xcopy, подобную этой

xcopy /s /d <Original Folder> <Destination Folder>

Он работает отлично, потому что я просто хочу перезаписать только измененные, но у меня есть одна крошечная проблема, когда я удаляю файл из исходной папки, этот файл остается в папке назначения, когда я запускаю пакетный файл, синхронизация Я хочу достичь... Я думаю, что это невозможно сделать с помощью xcopy, но я не знаю, какую команду я должен использовать, если я удалю файл в исходной папке.

EDIT: эти программы предназначены для людей, которые не понимают много ПК, поэтому я не хочу ничего устанавливать в своих компьютерах. Просто попробуйте простой командный файл, чтобы синхронизировать 2 папки

РЕШЕНИЕ: Благодаря Kuba Wyrostek я добрался до этой команды

robocopy < Original Folder > < Целевая папка > /e/purge

Спасибо всем за ваше время

Ответ 2

Чтобы уточнить свой ответ, вы можете просто сделать: robocopy <Original Folder> <Destination Folder> /mir

/mir отражает дерево каталогов (эквивалентно /e плюс /purge).

Ответ 3

Я знаю, что это старо, но у меня есть вопрос. Не может быть сделано с помощью правильных команд xcopy.

Папка 1: c:\workingFolder\ "содержимое здесь"

Папка 2: d:\workingFolderSync\ "содержимое здесь"

Пакетный файл ниже

xcopy "c:\workingFolder\*.*" "d:\workingFolderSync\" /i /s /d /y
xcopy "d:\workingFolderSync\*.*" "c:\workingFolder\" /i /s /d /y
pause

(Обычно я удаляю паузу после проверки я и знаю, что пакет работает.) Но это только скопирует содержимое из папки в другую, если оно будет более новым. Затем он просматривает папку назначения и копирует содержимое из пункта назначения обратно в исходное, если оно новее. Это воспроизводит синхронизацию, за исключением мониторинга в реальном времени измененных файлов. Создание правильного расписания задач может фактически реализовать запуск этой команды в определенное время, чтобы почти полностью воспроизвести синхронизацию. Вы также можете запустить это до модификации на машине и после модификации на машине. Даже делать то же самое на второй машине, если вы используете сетевой диск для синхронизации.

Ответ 4

Команда XCOPY для копирования обновлений из одной папки в другую выглядит следующим образом:

C:\> XCOPY C:/SOURCE D:/DESTINATION /E /D /C /Y

Флаги, используемые в приведенном выше примере, имеют следующие значения:

  • /E вызывает копирование всех папок и подпапок
  • /D вызывает сравнение DATE, только копируя элементы, которые новее, чем элемент DESTINATION. Если DESTINATION старше или не содержит файл, он будет скопирован.
  • /C сообщает XCOPY продолжить, если он встречает ошибку - обычно ошибки возникают с файлами только для чтения или с файлами, которые имеют защищенные разрешения
  • /Y сообщает XCOPY подавить запрос на подтверждение, что необходимо, если вы планируете создать автоматизацию script или запланированную задачу

Ответ 5

У вашего метода будут две основные проблемы:

  • Файлы, удаленные из одной папки, будут восстановлены копией слева в другой папке при следующем запуске xcopy
  • Переименование файлов может вызвать хаотические результаты.