Чи є спосіб xcopy щойно змінених або нових файлів?


57

Я намагаюся розгорнути веб-сайт зі свого робочого столу на своєму веб-сервері, і ось зараз я це роблю:

 xcopy C:\source X:\destination /s

Мій робочий стіл - це машина Windows XP, і мені потрібно скопіювати на машину Windows Server 2008, але це копіює все, і весь сайт дуже великий, і копіювання потрібно дуже багато часу.

Чи є спосіб спеціально просто скопіювати нові чи оновлені файли? Я бачу, що ви можете пройти в змінену дату, але я хотів побачити, чи є більш простий спосіб порівняння з файлом призначення ...

Крім того, я відкритий для використання нічого, крім xcopy, що також може виконати цю роботу ...


5
Ви також можете спробувати Robocopy.
joerage

Відповіді:


97

З документації XCOPY :

/ d [: mm-dd-yyyy]: Копіює вихідні файли, змінені лише після вказаної дати. Якщо ви не включаєте значення mm-dd-yyyy, xcopy копіює всі вихідні файли, новіші за існуючі цільові файли. Цей параметр командного рядка дозволяє оновлювати зміни файлів.

Отже, у вашому прикладі слід прочитати:

xcopy C:\source X:\destination /s /d

2
"/ d" здається, що ви мусите дати йому побачення. як згадувалося в запитанні, я не маю на увазі дату скорочення. Я просто хочу скопіювати нові та оновлені файли
leora

10
Ні, дата необов’язкова! Ось чому він знаходиться в квадратних дужках. Ви насправді читали цей рядок? Він говорить, що робить саме те, що ви хочете!
Марк

4
Єдине, на що слід бути обережним з цією відповіддю, це те, що веб-сервер та ваша робоча станція налаштовані на один і той же час! Якщо вони обидва не використовують NTP, це може або пропустити файли, або скопіювати більше файлів, ніж потрібно.
CarlF

5
Хоча в документації зазначено точно, легко не помітити, /dоскільки дата не є такою помітною, що дата не є обов'язковою, а потім подивіться на інші варіанти і подумайте, що рішення немає. :-)
Стефан Гурішон

2
Якщо файлу в папці призначення не існує, здається, що / D з не вказаною датою буде скопійовано його, що може бути не бажаним результатом.
tbone

24

Робокопія також є хорошою альтернативою:

За замовчуванням Robocopy копіює файл, лише якщо джерело та призначення мають різні часові позначки або різні розміри файлів.

Крім того, ви можете зробити набагато більше - команда дзеркала зручна для веб-сайтів, де ви також видаляєте файли.


Дякуємо, що згадали про роботокопію - завжди приємно вивчити деякі нові доступні утиліти.
Каспер Леон Нільсен

3

Використовуйте параметр / A. Усі нові або модифіковані файли матимуть набір атрибутів архіву.

Детальну інформацію див. За посиланням нижче:

Синтаксис команд Xcopy та приклади


1
Так, але якщо ви не будете xcopy /M, вихідні файли все ще матимуть атрибут архіву після їх копіювання, а також буде скопійовано наступного разу. Потрібен доступ для запису до вихідних файлів.
Nigel Touch

2

У мене передбачено наступне завдання для ~ 80k файлів і ~ 2k папок:

xcopy \\sourceserver\share\ Q:\backuptarget\folder\ /i /d /y /he /C /EXCLUDE:C:\backup\list.txt > C:\backup\backup.log

опція / C продовжує копіювати, навіть якщо файл або папку "заборонено в доступі" через те, що вона відкрита або не має дозволу в обліковому записі служби, запускаючи це заплановане завдання під.

">" переписує журнал кожного разу, якщо ви хочете додати, ви можете використовувати ">>" трубу.


0

Є rsync , але я не використовував у Windows. Я зазвичай використовую його в Linux:

rsync -avuz src/ remote:dst/

яка надсилає лише оновлення (нові та змінені файли).


-1

BitTorrent Sync чудово працює. Він оновлюватиметься автоматично щоразу, коли ви зміните файл. Оглядатись. Оновіть декілька місць одночасно, якщо вам потрібно. Простий у використанні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.