Go to content Go to menu Go to search

шпаргалка по robocopy

Утилита robocopy для windows - отдаленный аналог rsync в linux

использование

robocopy <source> <dest> [file [file]...] [options]

source :: Source Directory (drive:\path or \\server\share\path).
destination :: Destination Dir  (drive:\path or \\server\share\path).
file :: File(s) to copy  (names/wildcards: default is "*.*")

Основные опции:

/E :: copy subdirectories, including Empty ones. - a.k.a. Рекурсивное копирование
/MIR :: MIRror a directory tree (equivalent to /E plus /PURGE). - Удалаяет все "лищние" файлы в destination!!
/MT[:n] :: Do multi-threaded copies with n threads (default 8).

/XF file [file]... :: eXclude Files matching given names/paths/wildcards.
/XD dirs [dirs]... :: eXclude Directories matching given names/paths.

/XC excludes existing files with the same timestamp, but different file sizes. Robocopy normally overwrites those.
/XN excludes existing files newer than the copy in the source directory. Robocopy normally overwrites those.
/XO excludes existing files older than the copy in the source directory. Robocopy normally overwrites those.
:: With the Changed, Older, and Newer classes excluded, Robocopy will exclude files existing in the destination directory

/R:n :: number of Retries on failed copies: default 1 million.
/W:n :: Wait time between retries: default is 30 seconds.

/LOG:file :: output status to LOG file (overwrite existing log).
/LOG+:file :: output status to LOG file (append to existing log).

Примеры:

Скопировать рекурсивно все файлы и папки на сетевой диск, существующие заменить новыми

robocopy c:\tmp \\nas\tmp /E /MT

Скопировать рекурсивно все файлы и папки на сетевой диск, существующие обновить если есть новая версия

robocopy c:\tmp \\nas\tmp /MT /E /XO

Скопировать только jpg файлы в папке

robocopy c:\tmp \\nas\tmp *.jpg /MT /E

Синхронизировать локальную и удаленную папку рекурсивно

robocopy c:\tmp \\nas\tmp /MT /MIR

При запуске в скриптах следует использовать параметры таймаута ибо при обрыве связи копирование будет висеть ооочень долго:

robocopy c:\tmp \\nas\tmp /MT /MIR /R:2 /W:5

Нижеприведенный скрипт читает файл list.txt со списком файлов и копирует при помощи robocopy

@echo off
set FROM=D:\Images
set TO=\\nas\Images

for /f %%i in ( list.txt ) DO (
echo %%i
  if  %%i=='' ( exit )
  if exist "%FROM%\%%i" (
      robocopy.exe %FROM%\%%i %TO%\%%i /E /XO /Z /R:2 /W:5 /MT:10 /BYTES /NP /LOG+:logs\log_%%i.txt
  )
)

ENJOY!


при публикации материалов с данного сайта обратная ссылка на сайт обязательна.
valynkin.ru © no rights reserved