Robocopy примеры. Используем Robocopy. Примеры. Примеры использования robocopy

Доброе времени суток. Уважаемые читатели и гости, крупного IT блога сайт, занимающего в рейтинге Яндекс.Радар 2500 место , среди всех сайтов России. В прошлый раз, мы с вами решили проблему со сбоем запроса устройства . Сегодня я не хочу рассматривать новые ошибки, а поделюсь своим опытом использования утилиты Robocopy , приведу примеры использования, поговорю о параметрах утилиты и покажу, как у Robocopy использовать графический интерфейс (GUI). Данной программкой просто обязан пользоваться каждый системный администратор, ну или хотя бы знать. о ее существовании, лично у меня она находится на почетном месте в моем наборе системного инженера.

Что такое robocopy (Robust File Copy Utility)

Утилита Robocopy (Robust File Copy Utility) - это специализированное средство, в задачи которого входит тонкая настройка процесса копирования, синхронизации, удаления и переноса файлов и папок, между дисками компьютера, компьютерами, сетевыми шарами и лесами, с сохранением атрибутов, прав разрешений и многое другое.

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

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

Если обратиться к Википедии (https://ru.wikipedia.org/wiki/Robocopy), то там вы обнаружите, что она создавалась как средство репликации и шла в составе такого известного комплекса инструментов, как Windows Resource Kit.

Версии утилиты Robocopy

Первая версия robocopy появилась в 1997 году в составе инструментов Windows Resource Kit. На текущий момент самой свежей версией является 10.0.17763.1 входящей в состав Windows 10 1809, табличку в Википедии я подправил (https://en.wikipedia.org/wiki/Robocopy)

Где лежит Robocopy в системе?

Основной исполняемый файл Robocopy.exe располагается по пути C:\Windows\System32. Утилита очень компактная и весит всего 132 килобайта, но это не уменьшает ее мощи и функционала.

Где скачать утилиту Windows Robocopy

Скачать RoboCopy GUI Utility ver. 3.1 можно с официального сайта https://docs.microsoft.com/en-us/previous-versions/technet-magazine/cc160891(v=msdn.10) или у меня по ссылке с mail облака

После загрузки RoboCopy GUI Utility ver. 3.1, нам его необходимо установить. Запускаем исполняемый файл. Соглашаемся с лицензионным соглашением.

Утилита вам предложит указать каталог куда будут извлечены файлы.

Соглашаемся с извлечением.

В итоге вы получите вот такую структуру файлов. Запускаем setup.exe.

У вас появится тривиальный мастер установки GUI интерфейса для Robocopy. Нажимаем next.

Принимаем лицензионное соглашение "I gree"

Указываете будет ли утилита устанавливаться только для вас или для всех.

Установка графического интерфейса для Robocopy завершено.

У вас на рабочем столе появится ярлык Microsoft Robocopy GUI. Запускаем его и посмотрим, что из себя представляет эта утилита.

Обзор RoboCopy GUI Utility ver. 3.1

Давайте я бегло покажу, что из себя представляет данная программа. Сам графический интерфейс очень простой, так и должно быть. На первой вкладке вы увидите два действия:

  1. Первое, это нужно через "Source Path выбрать, что мы будем копировать"
  2. Второе действие, это в "Target Path мы задаем, куда мы будем переносить данные, при желании вы можете смонтировать сетевой диск, через пункт "Map Drive""

На вкладке "Copy Options", вы увидите уже знакомые параметры использования Robocopy, тут есть и ключи /SEC для переноса прав и команда /MOVE, которую мы применяли для вырезания файлов и многое другое. Тут же вы задаете количество потоков копирования.

Вкладка "Drive Mapping" поможет присоединить сетевой диск, тут вы указываете ip-адрес или DNS имя сервера, и учетные данные для подключения.

Вкладка "Filters" позволит вам указать, что именно нужно переносить и сделать фильтрацию, например, не переносить файлы длина которых в имени составляет более 256 символов, или только txt файлы.

Вкладка "Logging" задает параметры ведения логирования вашего задания.

Вкладка "Monitoring Options" будет полезна для наблюдения за источником копирования, в случае проблем, все можно идентифицировать и перезапустить.

Robocopy (Robust File Copy) утилита командной строки, которая идет с Windows Vista и более новыми версиями Windows. В старых версиях Windows она была частью Windows Resource Kit Tools. В отличие от обычной команды copy , Robocopy создана для более надежного копирования и зеркалирования. С подержкой резрешений, атрибутов, информации о пользователе, таймштампав копируемых объектов.

Синтаксис Robocopy:

robocopy source destination
  • source - директория откуда будем копировать. Может быть сетевым путем.
  • destination - директория куда копируем. Локальный или сетевой путь.
  • - файлы которые нужно скопировать. Можно использоваться wildcard символы (* или?). Если параметр не задан, то по умолчанию используется *.*

Примеры использования команды Robocopy

robocopy c:\src c:\dst *.txt

В этом примере будут копироваться все файлы.txt из директории c:\src в директорию c:\dst .

Robocopy c:\src c:\dst /e

Копировать все файлы, включая пустые.

Robocopy c:\src c:\dst /MIR

Сделает зеркало. Использовать с осторожностью т.к. из c:\dst будут удалены все файлы которых нет в c:\src

Robocopy robocopy \\computer\src c:\dst

Источник файлов на другом компьютере в сети.

Описание всех опций и параметров

Robocopy опции копирования

Описание

/s Копировать поддиректории. Пустые директории пропускаются.
/e Копировать поддиректории, включая пустые.
/lev: Копировать только верхние N уровней дерева директорий.
/z Копировать файлы в режиме рестарта.
/b Копировать файлы в Backup режиме.
/zb Используется режим рестарта. Если доступ запрещен, то используется Backup режим.
/efsraw

Копировать зашифрованные файлы в EFS RAW режиме.

/copy:

Указать какие свойства файлов будут копироваться. Правильные варианты для данной опции:

  • D Data
  • A Attributes
  • T Time stamps
  • S NTFS access control list (ACL)
  • O Owner information
  • U Auditing information

Значение по умолчанию DAT (data, attributes, and time stamps).

/dcopy:T Копировать таймштампы директории.
/sec Копировать файлы с security (эквивалент /copy:DAT).
/copyall Копировать всю информацию по файлам (эквивалент /copy:DATSOU).
/nocopy Не копировать информацию по файлам (полезно с опцией /purge).
/secfix Фиксировать security на всех файлах, даже пропущенных.
/timfix Фиксировать время на всех файлах, даже пропущенных.
/purge Удалить файлы в папке назначения, которых больше нет в исходной папке.
/mir Зеркалировать дерево директорий (эквивалентно двум опциям /e вместе с /purge).
/mov Переместить файлы. Т.е. после копирования будут удалены исходные.
/move Переместить файлы и директории. Исходники будут удалены.
/a+: Добавить атрибуты к скопированным файлам. Adds the specified attributes to copied files.
/a-: Удалить атрибуты у скопированных файлов.
/create Создать дерево директории и файлы с нулевым размером.
/fat Создавать файлы с именами в формате 8.3 как в FAT.
/256 Отключить поддержку очень длинных путей (которые больше 256 символов).
/mon: Мониторит исходную папку и если обнаружит больше чем N изменений то начнёт копирование изменённых файлов. Подробнее читайте тут: планировщик в Robocopy .
/mot: Мониторит исходную папку, ищет изменения каждые M минут и начинает копировать если были изменения. Подробнее читайте тут: планировщик в Robocopy .
/rh:hhmm-hhmm Указывает время когда начнется выполнение запланированного копирования. Подробнее читайте тут: планировщик в Robocopy .
/pf Checks run times on a per-file (not per-pass) basis.
/ipg:n Specifies the inter-packet gap to free bandwidth on slow lines.
/sl Копировать символические ссылки, вместо реального файла.

Опции выбора файлов

/a Копировать только те файлы у которых есть атрибут архива.
/m Копировать только те файлы у которых есть атрибут архива, и после этого сбросить этот атрибут.
/ia: Копировать только те файлы у которых есть указанные атрибуты.
/xa: Не копировать те файлы у которых есть указанные атрибуты.
/xf [ ...]

Не копировать те файлы у которых имя или путь похожи на заданный. В имени файла можно использовать "*" и "?".

/xd [ ...] Не копировать те директории у которых имя или путь похожи на заданный. В имени директории можно использовать "*" и "?".
/xct Не копировать изменённые файлы.
/xn Не копировать новые файлы.
/xo Не копировать старые файлы.
/xx Не копировать те файлы и папки которые уже есть в папке назначения.
/xl Excludes "lonely" files and directories.
/is Includes the same files.
/it Includes "tweaked" files.
/max: Не копировать файлы у которых размер больше чем N байт.
/min: Не копировать файлы у которых размер меньше чем N байт.
/maxage: Не копировать файлы которые старее N дней.
/minage: Минимальный возраст файлов N дней.
/maxlad: Не копировать те файлы которые не использовались начиная с даты N .
/minlad: Копировать файлы которые использовались до определённой даты. Если N меньше чем 1900, тогда это дни. Иначе это год в формате YYYYMMDD.
/xj Не копировать junction points. По умолчанию они копируются.
/fft Assumes FAT file times (two-second precision).
/dst Compensates for one-hour DST time differences.
/xjd Не копировать junction points для директорий.
/xjf Не копировать junction points для файлов.

Опции повторов

Опции логов

/l Покажет список файлов которые выбраны для обработки, но само копирование, удаление и т.п. не будет выполняться.
/x Сообщает все дополнительные файлы, а не только те, которые выбраны.
/v Болтливый режим. Покажет также пропущенные файлы.
/ts

Покажет таймстампы файлов.

/fp Показывать полные пути к файлам.
/bytes Показывать размер файлов в байтах.
/ns Указывает, что размеры файлов не логируются.
/nc Указывает, что классы файлов не должны логироваться.
/nfl Имена файлов не будут логироваться.
/ndl Имена директори не будут логироваться.
/np Не будет показываться прогресс копирования. Т.е. количество файлов и директорий.
/eta Показывает примерное время прибытия копированных файлов.
/log: Логировать в файл. Если такой файл логов уже есть, то он будет перезаписан.
/log+: Логировать в файл. Если такой файл логов уже есть, то данные будут добавлены в него.
/unicode Отображать статус в юникоде.
/unilog: Логировать в файл в формате Unicode. Если такой файл логов уже есть, то он будет перезаписан.
/unilog+: Логировать в файл в формате Unicode. Если такой файл логов уже есть, то данные будут добавлены в него.
/tee Логировать и в файл и в консоль.
/njh Указывает, что нет заголовка задания.
/njs Указывает, что нет резюме работы.

Часть 1: Создание сценария резервного копирования.

Robocopy (Robust File Copy) – это утилита командной строки для репликации (копирования) файлов и папок, которая имеется в операционных системах Windows Vista, Windows 7 и Windows Server 2008.

Robocopy разработана для отказоустойчивого копирования каталогов и деревьев каталогов. Она обладает возможностью копирования всех (или выборочных) NTFS атрибутов и свойств, имеет дополнительный код для перезапуска при применении с сетевым соединением в случае его разрывов.

Утилита Robocopy существует также в графическом интерфейсе (GUI ) который разработал Дерк Бениш (Derk Benisch), системный инженер группы MSN Search компании Microsoft.

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

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

Создание сценария резервного копирования вручную.

Итак, самая простая команда, которую можно применить для этих целей с использованием утилиты robocopy, будет выглядеть например так:

Robocopy C:\Users\имя_пользователя\Downloads D:\Backup\Downloads

где C:\Users\имя_пользователя\Downloads — это путь к той папке, резервную копию которой мы хотим создать, а D:\Backup\Downloads – каталог для ее размещения.

Создаем текстовый файл с расширением.txt, и копируем в него команду. Присваиваем файлу имя robocopy (можно любое) с расширением cmd и сохраняем. Запускать файл нужно обязательно от имени администратора. Результат: команда создала резервную копию папки “Загрузки” в папке Backup на диске D:

Приведу краткую информацию о некоторых ключах, при помощи которых можно расширить возможности использования команды robocopy.

1) Для включения в резервную копию пустых папок к команде нужно дописать ключ /E

Robocopy C:\Users\имя_пользователя\Downloads D:\Backup\Downloads /E

2) Чтобы исключить из копирования скрытые системные файлы, используйте переключатель /XA:SH

Robocopy C:\Users\имя_пользователя\Downloads D:\Backup\Downloads /XA:SH

3) Утилита Robocopy способна обработать и открытые файлы. Но при его обнаружении программа приостанавливает копирование и ждет, пока он закроется. Каждые 30 секунд Robocopy будет пытаться возобновить копирование. На эти попытки по умолчанию отведен один миллион попыток (!), но кто будет ждать столько времени? Поэтому количество попыток нужно сократить до разумного предела, например 5-10.

Для этих целей используется переключатель /R , а для изменения интервала между попытками — переключатель /W . С количеством попыток возобновить копирование открытого файла — 10, и временным промежутком между ними - 15 секунд, команда будет выглядеть так:

Robocopy C:\Users\имя_пользователя\Downloads D:\Backup\Downloads /R:10 /W:15

4) Чтобы скрыть с экрана прогресс копирования каждого отдельного файла, нужно добавить в команду переключатель /NP:

Robocopy C:\Users\имя_пользователя\Downloads D:\Backup\Downloads /R:10 /W:15 /NP

5) Можно также создать файл отчета работы утилиты с помощью переключателя /LOG и заставить его перезаписываться при каждом следующем запуске:

Robocopy C:\Users\имя_пользователя\Downloads D:\Backup\Downloads /R:10 /W:15 /NP /LOG:Backup.log

Как видите, возможностей у этой утилиты предостаточно, однако и это еще не все. С полным перечнем переключателей команды robocopy можно ознакомиться на сайте: http://technet.microsoft.com/en-us/library/cc733145(WS.10).aspx

Понимание значения каждого из ключей, позволит вам использовать функционал утилиты на полную катушку. Если вы не хотите создавать сценарии вручную, можно воспользоваться графическим интерфейсом утилиты robocopy (Microsoft Robocopy GUI ), с рассказа о котором я начал эту статью.

Создание сценария резервного копирования при помощи Microsoft Robocopy GUI.

Перейдите на вкладку Copy Options (Опции копирования) и отметьте необходимые чекбоксы галочками, для добавления соответствующих переключателей в сценарий копирования:

Обратите внимание на наличие функции Save Script (Сохранение скрипта) внизу окна. Она позволяет создавать целые наборы сценариев копирования сохранять их в указанное место и применять их в дальнейшем по мере необходимости:

Я проверил как это работает на практике, и оказалось, что сохранение файла сценария например на Рабочий стол невозможно:

А вот сохранение файла по предлагаемому утилитой по умолчанию пути происходит без проблем:

Впрочем это не столь принципиально – главное, что утилита сделала свое дело, готовый файл сценария для дальнейшего использования создан.

Часть 2: запуск сценария резервного копирования по расписанию.

Для планирования запуска резервного копирования в автоматическом режиме в определенное время, нам потребуется Планировщик заданий Windows .

Как это реализовать, наглядно демонстрируют скриншоты:

1) Создаем задачу, присваиваем ей имя. Устанавливаем атрибут “скрытая” (что, в принципе, не обязательно):

2) Во вкладке “Действия” указываем путь к файлу сценария:

3) Во вкладке “Триггеры” назначаем запуск по расписанию:

Основные действия по созданию задачи выполнены, далее по желанию можно настроить вкладки “Параметры” и “Журнал”.

Сохраняем все изменения и закрываем Планировщик заданий .

Как видите, все очень просто. Теперь моя папка “Загрузки” будет копироваться в указанное место на диске D по расписанию (разово, ежедневно, еженедельно и так далее).

Используем Robocopy . Примеры.

— это отличнейшая вещь, очень гибкий инструмент для копирования и даже бэкапа. И самое интересное то, что она поддерживает длинные пути файлов т.е. более 256 симоволов!!! Wiki: Это утилита для репликации (не просто копирования) каталогов (папок). Она была доступна как часть Windows Resource Kit и представлена как стандартный компонент Windows Vista, Windows 7 и Windows Server 2008. Поставляется компанией Microsoft «как есть» без гарантий и техподдержки.

Разработана для отказоустойчивого копирования каталогов и деревьев каталогов. Она обладает возможностью копирования всех (или выборочных) NTFS атрибутов и свойств, имеет дополнительный код для перезапуска при применении с сетевым соединением в случае его разрывов.

Все это необхожимо если вам нужно перенести целый каталог файлов с сервера со всеми настройками прав доступа в том числе и атрибутов времени создание файлов или скопировать файлы исключив какие то файлы (по разным атрибутам или расширению) или папки. Также robocopy удобно использовать в качестве программы для файлов с компьютеров пользователей на сервер (дальше на сервере работает добавочная архивация) — самое оптимальное решение.

Параметры копирования из robocopy /help

ROBOCOPY:: Robust File Copy for Windows
Применение:: ROBOCOPY источник назначение [файл [файл]…] [Параметры]
Источник:: Исходная папка (диск:\путь или \\сервер\общий ресурс\путь).
Назначение:: Конечная папка (диск:\путь или \\сервер\общий ресурс\путь).
Файл:: Копировать файлы (имена и подстановочные знаки: по умолчанию «*.*»).
::
:: Параметры копирования:
::
/S:: Копировать вложенные папки, кроме пустых.
/E:: Копировать вложенные папки, включая пустые.
/LEV:n:: Копировать только верхние n уровней исходного дерева папок.
/Z:: Копирование файлов с возобновлением.
/B:: Копирование файлов в режиме архивирования.
/ZB:: используется режим с возобновлением; если доступ запрещен, используется режим архивации.
/EFSRAW:: Копирование всех зашифрованных файлов в режиме EFS RAW.
/COPY: флаги копирования:: что копируется для файлов (по умолчанию /COPY:DAT).
(флаги копирования: D=Данные, A=Атрибуты, T=Метки времени).
(S=Безопасность=NTFS ACLs, O=Сведения о владельце, U=Сведения аудита).
/DCOPY:T:: Копирование меток времени папки.
/SEC:: Копировать файлы с параметрами безопасности (эквивалентно /COPY:DATS).
/COPYALL:: Копировать все сведения о файле (эквивалентно /COPY:DATSOU).
/NOCOPY:: Не копировать никаких сведений о файле (удобно использовать с параметром /PURGE).
/SECFIX:: Исправлять параметры безопасности для всех файлов, даже пропущенных.
/TIMFIX:: Исправлять атрибуты времени для всех файлов, даже пропущенных.
/PURGE:: Удалять файлы и папки назначения, которых больше не существует в источнике.
/MIR:: Создать зеркало дерева папок (эквивалентно /E с /PURGE).
/MOV:: Перемещать файлы (удаление из источника после копирования).
/MOVE:: Перемещать файлы и папки (удаление из источника после копирования).
/A+: :: Добавлять заданные атрибуты скопированным файлам.
/A+: :: Удалять заданные атрибуты из скопированных файлов.
/CREATE:: Создать только дерево папок и файлы нулевой длины.
/FAT:: Создать файлы назначения только в формате 8.3 FAT.
/256:: Отключить поддержку длинных путей (> 256 знаков).
/MON:n:: Наблюдать за источником; перезапустить после n изменений.
/MOT:m:: Наблюдать за источником; перезапустить через m минут, если произошли изменения.
/RH:hhmm-hhmm:: Часы запуска - время, когда можно запускать новое копирование.
/PF:: Проверять часы запуска по файлам (не по проходам).
/IPG:n:: Интервал между пакетами (мс) для снижения нагрузки на сеть при низкоскоростных подключениях.
/SL:: копирование самих символических ссылок вместо копирования целевого объекта этих ссылок.
::
:: Параметры выбора файлов:
::
/A:: Копировать только файлы с установленным атрибутом «Архивный».
/M:: Копировать только файлы с атрибутом «Архивный» и сбросить его.
/IA: :: Включить файлы, у которых установлен какой-либо из заданных атрибутов.
/XA: :: Исключить файлы, у которых установлен какой-либо из заданных атрибутов.
/XF file [файл]… :: Исключить файлы, соответствующие заданным именам, путям и подстановочным знакам.
/XD dirs [папки]… :: Исключить папки, соответствующие заданным именам и путям.
/XC:: Исключить измененные файлы.
/XN:: Исключить более поздние файлы.
/XO:: Исключить более ранние файлы.
/XX:: Исключить дополнительные файлы и папки.
/XL:: исключить отдельно расположенные файлы и папки.
/IS:: Включить те же файлы.
/IT:: Включить оптимизированные файлы.
/MAX:n:: Максимальный размер файла - исключить файлы, размер которых более n байт.
/MIN:n:: Минимальный размер файла - исключить файлы, размер которых менее n байт.
/MAXAGE:n:: Максимальный возраст файла - исключить файлы, возраст которых превышает n дней.
/MINAGE:n:: Минимальный возраст файла - исключить файлы, возраст которых менее n дней.
/MAXLAD:n:: Наиболее поздняя дата последнего обращения - исключить файлы, которые не использовались с даты n.
/MINLAD:n:: Наиболее ранняя дата последнего обращения - исключить файлы, которые использовались после даты n.
(Если n < 1900, то n = n дней, в противном случае n - дата в формате ДДММГГГГ).
/XJ:: исключить точки соединения. (по умолчанию обычно включаются).
/FFT:: Использовать время файлов FAT (двухсекундная точность).
/DST:: Учитывать одночасовую разницу при переходе на летнее время.
/XJD:: Исключить точки соединения для папок.
/XJF:: Исключить точки соединения для файлов.
::
:: Параметры повторных попыток:
::
/R:n:: число повторных попыток для неудавшихся копий: по умолчанию - 1 миллион.
/W:n:: Время ожидания между повторными попытками: по умолчанию - 30 секунд.
/REG:: Сохранить /R:n и /W:n в реестре как параметры по умолчанию.
/TBD:: Ждать, пока будут определены имена общих ресурсов (ошибка повторной попытки 67).
::
:: Параметры ведения журнала:
::
/L:: Только список - файлы не копируются, не удаляются, не помечаются метками времени.
/X:: Сообщать обо всех дополнительных файлах, а не только о выбраных.
/V:: Подробный вывод с указанием пропущенных файлов.
/TS:: Включать в вывод метки времени исходных файлов.
/FP:: Включать в вывод полные пути файлов.
/BYTES:: Печатать размеры в байтах.
/NS:: Без размера - не заносить в журнал размер файлов.
/NC:: Без класса - не заносить в журнал классы файлов.
/NFL:: Без списка файлов - не заносить в журнал имена файлов.
/NDL:: Без списка папок - не заносить в журнал имена папок.
/NP:: Без хода процесса - не отображать число скопированных %.
/ETA:: Показывать оценку времени окончания копирования файлов.
/LOG: файл:: Записывать состояние в файл журнала (перезаписывать существующий журнал).
/LOG+: файл:: Записывать состояние в файл журнала (добавлять к существующему журналу).
/UNILOG: файл:: Записывать состояние в файл журнала в формате Юникод (перезаписывать существующий журнал).
/UNILOG+: файл:: Записывать состояние в файл журнала в формате Юникод (добавлять к существующему журналу).
/TEE:: Направлять выходные данные в окно консоли и в файл журнала.
/NJH:: Без заголовка задания.
/NJS:: Без сведений о задании.
/UNICODE:: Cостояние вывода в формате Юникод.
::
:: Параметры задания:
::
/JOB: имя_задания:: Взять параметры из указанного файла задания.
/SAVE: имя_задания:: Сохранить параметры в указанный файл задания
/QUIT:: Выйти после обработки командной строки (для просмотра параметров).
/NOSD:: Не указывается исходная папка.
/NODD:: Не указывается папка назначения.
/IF:: Включить следующие файлы

Примеры использования

Все это выполняется в командной строке (Пуск-Выполнить-CMD) или вы можете создать bat скрипт.

1. Скопировать файлы, измененные за последние 5 дней (исключая сегодня).

robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /maxage:5 /minage:1

2. Переместить все файлы:
robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /move /e

3. Скопировать файлы за исключением скрытых (/xa:h):

robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /e /xa:h

или за исключением read-only (/ia:rs):

robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /ia:rs

При копировании также можно менять атрибуты файлов, при помощи опции A+ (добавить атрибут) or A- (удалить атрибут). Скопировать все файлы и задать им атрибут read-only:

robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /e /A+:r

4. Скопировать все файлы по шаблону (расширению), пустые папки не копировать:

robocopy «E:\Documents» «\\NAS\BACKUP\Documents» *.doc *.ppt /s

5. Скопировать все файлы размером от 1000 до 60000 байт:

robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /e /max:60000 /min:1000

6. Исключить из копирования папку AppData (/XD AppData):

Robocopy «C:\Users\Administrator» «\\NAS\BACKUP\Administrator» /MIR /XA:SH /XD AppData /XJD

7. Создать 32 потока (/MT:32) копирования файлов:

Robocopy «C:\Users\Administrator» \\NAS\BACKUP\Administrator /MIR /XA:SH /XD AppData /XJD /R:5 /W:15 /MT:32

8. Скопировать файлы из одной папки в другую со стандартными атрибутами исключив файл по расширению (допустим *.doc)

Robocopy » Robocopy «C:\Users\Administrator» «\\server\userbackup» /СOPY:DAT /XF *.doc

Пример использования для бэкапа

1)

robocopy D:\исходная_папка \\192.168.0.1\целевая_папка /E /Z /COPY:TDASO /DCOPY:T /M /R:2 /W:5 /MT:64

В данном примере:
Мы копируем папку «исходная папка», находящуюся на локальном диске D:
Мы копируем эту папку на компьютер \\192.168.0.1 в папку «целевая папка»
/E: Мы копируем все подпапки и файлы
/Z: Включаем поддержку докачки (на случай обрыва связи)
/COPY:TDASO: Копируем все атрибуты и ACL прав доступа NTFS (но не копируем атрибуты аудита)
/DCOPY:T: Копируем время создания папок
/M: Копируем только файлы с установленным атрибутом «A — Архивный» и сбрасываем этот атрибут, что позволяет нам копировать только измененные файлы.
/R: Количество повторных попыток копирования файла в случае, если копирование не удалось. Причем «не удалось» срабатывает и в том случае, если доступ к файлу закрыт. По-умолчанию = 1 миллионы, т.е. бесконечно, потому копирование благополучно встанет на первом же файле, к которому не будет доступа.
/W: Задержка в секундах между попытками копирования. По-умолчанию = 30 секундам.

/MT — кол-во потоков, увеличив которые можно ускорить копирование. Будет быстрее чем обычное копирование файла точно.

2) Похожий пример, но обратите внимание — каждый раз бэкап копируется в папку с названием даты и времени. Очень удобно для создание добавочного бэкапа.
robocopy D:\исходная_папка \\192.168.0.1\целевая_папка\ %date:~0,2%.%date:~3,2%.%date:~6,4%.%time:~0,2%-%time:~3,2% /E /Z /COPY:TDASO /DCOPY:T /M /R:2 /W:5


%date:~0,2%.%date:~3,2%.%date:~6,4%.%time:~0,2%-%time:~3,2% - дата и время созда ние бэкапа в качестве названия папки. В итоге получается папка вида 16.01.2016-10.19

Или так — %date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2% Результат — 2016-03-13_23-30

Много интересного вы также сможете узнать набрав команду set /?

Формат даты в командной строке:

@echo off set day=%DATE:~0,2% set month=%DATE:~3,2% set year=%DATE:~6,4% set hour=%TIME:~0,2% set minute=%TIME:~3,2% set second=%TIME:~6,2% echo %day% echo %month% echo %year% echo %hour% echo %minute% echo %second% set YYYYMMDD=%year%%month%%day% echo %YYYYMMDD%

Вопрос: Robocopy GUI: копирование только новых файлов


Помогите разобраться с Robocopy GUI.Какие команды лучше прописать. Нужно сделать копию папки с сервака куда падают бекапы с базы в архиве. Бекапы падают всегда в одно время. Нужно чтобы он сканировал и копировал только новые, а старые с сервера удалял.

Ответ:

Сообщение от setrg

Нужно чтобы он сканировал и копировал только новые

Код Windows Batch file
1 Robocopy /?

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

Вопрос: Копирование только новых и модифицированных файлов с сохранением структуры каталогов


драссти
бьюсь об.BAT второй день
цель - собрать батник с целью копирования большого количества подкаталогов и файлов из сетевого диска на локальный с построением дерева подкаталогов, но только новые или модифицированные.

не помогает.

Режим вывода команд на экран (ECHO) включен.

C:\Users\user\Desktop>xcopy Z:\ОБЪЕКТЫ\1_77-2778\АОП H:\работа\2778 /s /d
Скопировано файлов: 0.

C:\Users\user\Desktop>xcopy Z:\ОБЪЕКТЫ\1_77-2778\Фото строительства H:\работа\27
78 /s /d

C:\Users\user\Desktop>xcopy Z:\ОБЪЕКТЫ\1_77-2778\Фото обследования H:\работа\277
8 /s /d
Недопустимое число параметров
Для продолжения нажмите любую клавишу. . .


Каких параметров???

Если по одной строчке, то все работает

Получается мне надо сделать скрипт на запуск 120 скриптов?
это же повесит и комп и сетевое хранилище (Z:\ - это хранилище)

Ответ: странно, ключ по модификацию стоит, а он все равно спрашивает замещать или нет
и вообще, в чем прикол copy, xcopy, robocopy и т. д. все же делают по сути одно и тоже

Вопрос: Копирование только измененных файлов с выводом этих файлов


Есть два древа папок. В одном обновленная версия игры (древо1), в другом старая (древо2). Причем не известно какие файлы были изменены, и какие добавлены, но само древо каталогов почти идентичны.
Нужно провести копирование с заменой (из древа1 в древо2) только измененных и добавить новые файлы, причем копии тех файлов, которые были скопированы/добавлены должны быть перенесены в еще одно отдельное древо (древо3). Т.е. в итоге нужно сделать так, чтоб если скопировать с заменой древо3 в старую версию древа2, то получится древо1. Как это сделать?

Добавлено через 10 минут
Можно через
xcopy /T /E .\древо1\* .\древо2\*
скопировать в древо2 древо каталогов древа1, вдруг появились в древе1 новые папки.
Потом через
xcopy /D:*дата обновления* /E /Y .\древо1\* .\древо2\* > name.txt
скопировать измененные файлы и вывести лог в txt, а потом вручную искать эти файлы и создавать древо3... НО ЗАЧЕМ?

Ответ: Morses23 ,

Сообщение от Morses23

НО ЗАЧЕМ?

Добавлено через 14 часов 51 минуту
Morses23 , Вот так можно выделить разницу в файлах между папкой 1 и папкой 2 в папку 3
Код Windows Batch file
1 2 3 4 5 6 7 8 9 @ echo on set "new=%Userprofile% \Desktop\1" set "old=%Userprofile% \Desktop\2" set "razn=%Userprofile% \Desktop\3" pushd "%new% " for %%i in ("*.*" ) do ( if not exist "%old%\%% i" copy "%%i " "%razn%\%% i" ) popd pause

Добавлено через 5 часов 6 минут
Morses23 , Понял что требовалось

Код Windows Batch file
1 2 3 4 5 6 7 8 9 10 11 12 13 @ echo off set "new=%Userprofile% \Desktop\1" set "old=%Userprofile% \Desktop\2" set "razn=%Userprofile% \Desktop\3" set "izm=%Userprofile% \Desktop\4" for %%i in ("%new% \*" ) do ( for %%j in ("%old% \*" ) do ( if not exist "%old%\%% ~nxi" copy "%%i " "%razn% " & copy "%%i " "%old% " if "%%~nxi"=="%% ~nxj" ( fc "%%i " "%old% \*" if errorlevel==1 ( copy "%%i " "%izm% " & copy "%%i " "%old% " ) ) ) ) exit

Вопрос: Robocopy копирование файла без расширения


Добрый день всем.
Настроен бэкап файла kladr из сетевой папки:
Windows Batch file
1 robocopy \\comp \kladr\kladr D:\%YYYYMMDD% _Kladr\ /E /Z /J /R:2 /W:5 /BYTES /NP /XA:SH /XJD

Копируемый файл kladr не имеет расширения. Если указывать имя файла, то robocopy говорит, что не может найти папку \\comp\kladr\kladr. Т.е. robocopy название файла в команде видит как путь. Переименовывать нельзя.
Настроил копирование всей папки, и, чтобы копировать только этот файл, попытался ограничить размерами файла (/min /max) - в этом случае файлы, которые лежат в корне папки, не копируются, но копируются все папки, которые расположены в этой шаре. Файл расположен в корне диска D. На диске D еще много файлов и папок. Перемещать ничего нельзя.
Как настроить копирование так, чтобы копировался только этот файл?

Ответ:

Не по теме:

я не утверждал

Сообщение от alpap

возможно

Сообщение от alpap

так диктует синтаксис robocopy

Сильно синтаксис robocopy не рассматривал, а синтаксису xcopy противоречит, решил показать на возможную опечатку,
рад что все оказалось не так и работает как надо, удачи.

Вопрос: На флешке переименовались папки, добавились новые файлы


При попытке копировать фотографии с флешки от цифровика на внешний жёсткий диск стали возникать проблемы (не все фотографии хотели копироваться). После прекращения копирования заметил новые файлы на флешке, а затем одна папка с фотографиями переименовалась и соответственно перестала открываться (см. скриншоты). Вторая папка открывается, как и фотографии в ней, но так же появились новые файлы. Антивирус (аваст) не может сканировать эти файлы. Хотелось бы вылечить вирус и спасти фотографии! Заранее спасибо.

Ответ: На форуме, спросите там.

Вопрос: Копирование новых файлов каждые 30 минут


Знатоки, приветствую.
Помогите пожалуйста реализовать задачу.
Есть два каталога:
"Cat-1"
"Cat-2"
В каталог "Cat-1", каждые 5 минут сваливаются всякие разные непонятные файлы. Задача в том, чтобы написать скрипт, который я буду запускать в шедулере каждые 30 минут.
Сам скрипт должен искать в каталоге "Cat-1" файлы, начинающиеся с Английской буквы I, с любым расширением, которые свалились в данный каталог с момента последнего запуска скрипта (30 минут) и копировать (не перемещать) все подходящие под правило файлы в каталог "Cat-2".
Каталог "Cat-1" всегда пухнет новыми файлами, заменяемых файлов нет, дата создания всегда соответствует фактическому времени падения файла в каталог "Cat-1".
Помогите плиз с написанием скрипта.
Всем неравнодушным - огромный кармаплюс!!!

Ответ:

Сообщение от b0gus

POSTREALITY, вот такой инвариант robocopy.exe предлагаю


через опции robocopy можно выбрать всё тоже самое, в том числе циклический перезапуск и логирование.
А чтобы окно не мешало можно запустить в скрытом режиме.

Вопрос: Батник для копирования самого нового файла


Всем привет. В создании bat файлов я полнейший ноль, второй день рою интернеты, но чем дальше в лес...
Помогите, пожалуйста, с батником для копирования.
Есть каталог "example" с кучей подкаталогов, в которых в свою очередь лежат бинарники с именами test.bin. Нужно постоянно сканировать "example" и искать там эти бинарники. В папке example лежит папка "out", куда нужно копировать с заменой самый свежий бинарник, т.е.
1. ищем бинарники, смотрим их дату/время изменения
2. находим среди них самый свежий и сравниваем дату изменения файла с датой изменения бинарника из папки out.
3. если в папке out более старый бинарник, копируем туда найденный свежий файл, если же нет, то сканируем дальше.

Первый батник попробовал создать только вчера и вот что у меня получилось:
1. смог сделать постоянную перезапись бинарника в папку out из одного каталога, с которым в основном работаю
2. сделал поиск файла по имени и вывод даты/времени в консоли
дальше вообще никак не могу продвинуться

Буду рад любой помощи. заранее спасибо!

Ответ:

Сообщение от YuS_2

Как-то так:

Не знаю как это работает ввиду моего незнания бат-скриптов, но это работает!
Большое человеческое спасибо!

Вопрос: Копирование и удаление файлов на основе анализа содержимого двух папок


Добрый день! Снова нужна Ваша помощь по bat-файлу, задача в следующем:
Есть папка источник (с:\source), содержащая определенные файлы (к примеру файлы *.pdf) и конечная папка (с:\way - зеркало папки с:\source) содержащая файлы соответственно,
нужно провести анализ двух папок следующим образом:
- Если в папке источник (с:\source) появились новые файлы которых нет в конечной папке (с:\way), то скопировать их в нее с изменением даты создания этих файлов , т.е. дата создания копируемого файла(файлов) должна быть текущей (наст. время)
- Если некоторые файлы в двух папках остались без изменения ничего с ними не делать (не перекопировать)
- И если произошло удаление каких-то файлов(файла) из папки (с:\source) соответственно произвести это удаление в папке (с:\way)
Заранее Спасибо!

Ответ: Andrey_10 , если нужно установить для целевого файла текущую дату как в качестве даты создания, так и в качестве даты изменения, то используйте команду "TYPE":

Windows Batch file
1 2 3 4 5 6 7 8 9 10 @ echo off set "source=C:\source" set "destination=C:\way" set "files=*.pdf" for %%i in ("%destination%\%files% " ) do if not exist "%source%\%% ~nxi" del /a/f "%%i " for %%i in ("%source%\%files% " ) do if not exist "%destination%\%% ~nxi" type "%%i">"%destination%\%% ~nxi" exit /b

.

Вопрос: Не видно новые файлы в общей папке


Добрый день.
Есть компьютер с установленной Windows 7 x86, создана папка "C:\cam", в эту папку автоматически скачиваются файлы из фотоаппарата по вай-фай через приложение Image Transfer Utility от Canon.
Собственно эта папка расшарена по сети с доступом для всех. Но! Когда загружаются новые фотки в свойствах файлов нет разрешений на доступ "всем", только пользователю данного компьютера и, соответственно, другие пользователи не видят новых файлов. Если вручную добавить "всех", то доступ появляется, но это дикий костыль. Как заставить винду принудительно применять разрешения?
Было бы здорово научить Винду создавать документы Фотошоп, Рино или 3ds Мак

Операционка W7 64

Ответ: Следующий шаг - создайте в папке файл, например index.php. Внутри него напишите шаблон вашей странички. Например, так:




Мой заголовок


А как этот фаил создать?

Вверх