2014-10-07 5 views
11

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

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

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

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

РЕШЕНИЕ: Благодаря Kuba Wyrostek я попал в эту команду

ROBOCOPY < Оригинал Папка > < Папка назначения >/е/продувка

Спасибо все для вашего времени

ответ

1

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

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

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

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

Это не отвечает на исходный вопрос. – Mikhail

+0

@ geisterfurz007 Вы уверены, что это не оригинал? В этой статье нет даты, но ее старейший комментарий к disqus составляет 10 месяцев * после * этого сообщения. Если вы считаете, что сообщение плагиат, пожалуйста, поднимите флаг модератора. –

+0

@ RyanBemrose Argh, что я сделал>.> Ничтожная мелочь и идея, о которой я даже не думал. Отвлек мой комментарий и нижний план. Спасибо за заметку и намек на возможные будущие случаи :) – geisterfurz007

9

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

/mir зеркала дерева каталогов (эквивалент /e PLU s /purge).

2

Я знаю, что это старый, но у меня есть вопрос. Нельзя ли это сделать с помощью правильных команд 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 

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

0

Ваш метод будет иметь две основные проблемы:

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