robocopy
Package: WA2L/WinTools 1.2.08
Section: General Commands (3)
Updated: 10 April 2017
Index
Return to Main Contents
NAME
robocopy - Robust File and Folder Copy
SYNOPSIS
robocopy
Source_folder
Destination_folder
[
files_to_copy
][
options
]
AVAILABILITY
WA2L/WinTools
DESCRIPTION
Robust File and Folder Copy.
By default
robocopy
will only copy a file if the source and destination
have different time stamps or different file sizes.
By copying only the files that have changed,
robocopy
can be used to backup very large volumes.
If either the source or desination are a "quoted long foldername" do
not include a trailing backslash as this will be treated as an escape
character, i.e.
"C:\some path\
will fail but
"C:\some path\\"
or
"C:\some path\."
or
"C:\some path"
will work.
If creating a progress logfile with
/LOG,
specify a destination
directory that already exists,
robocopy
will create the file but will
not create a log directory automatically.
robocopy
will accept UNC pathnames including UNC pathnames over 256
characters long.
/REG
Writes to the registry at HKCU\Software\Microsoft\ResKit\Robocopy
/XX
(exclude extra) If used in conjunction with
/Purge
or
/Mir
, this
switch will take precedence and prevent any files being deleted from the
destination.
To limit the network bandwidth used by
robocopy,
specify the Inter-Packet Gap parameter
/IPG:n
This will send packets of 64 KB each followed by a delay of
n
Milliseconds.
robocopy
will fail to copy files that are locked by other users or
applications, so limiting the number of retries with
/R:0
will speed
up copying by skipping any in-use files. The Windows Volume Shadow
Copy service is the only Windows subsystem that can copy open files.
robocopy
does not use the Volume Shadow
Copy service, but it can backup a volume shadow that has already been
created with VSHADOW or DISKSHADOW.
All versions of
robocopy
will copy security information (ACLs) for
directories, version XP010 will not copy file security changes unless
the file itself has also changed, this greatly improves performance.
/B
(backup mode) will allow
robocopy
to override file and folder permission settings (ACLs).
ERROR 5 (0x00000005) Changing File Attributes ... Access is denied
This error usually means that File/Folder permissions or Share
permissions on either the source or the destination are preventing
the copy, either change the permissions or run the command in backup
mode with
/B.
To run
robocopy
under a non-administrator account will require backup
files privilege, to copy security information auditing privilege is
also required, plus of course you need at least read access to the files
and folders.
OPTIONS
- file(s)_to_copy
-
A list of files or a wildcard (defaults to copying *.*).
Source options
- /S
-
Copy Subfolders.
- /E
-
Copy Subfolders, including Empty Subfolders.
- /COPY:copyflag(s)
-
What to COPY (default is
/COPY:DAT
)
(copyflags:
D=Data,
A=Attributes,
T=Timestamps,
S=Security=NTFS-ACLs,
O=Owner-info,
U=aUditing-info).
- /SEC
-
Copy files with SECurity (equivalent to
/COPY:DATS
).
- /DCOPY:T
-
Copy Directory Timestamps.
- /COPYALL
-
Copy ALL file info (equivalent to
/COPY:DATSOU
).
- /NOCOPY
-
Copy NO file info (useful with
/PURGE).
- /A
-
Copy only files with the Archive attribute set.
- /M
-
like
/A,
but remove Archive attribute from source files.
- /LEV:n
-
Only copy the top n LEVels of the source tree.
- /MAXAGE:n
-
MAXimum file AGE - exclude files older than
n
days/date.
- /MINAGE:n
-
MINimum file AGE - exclude files newer than
n
days/date.
(If
n
< 1900 then
n
= number of days, else
n
=
YYYYMMDD
date).
- /FFT
-
Assume FAT File Times (2-second date/time granularity).
- /256
-
Turn off very long path (> 256 characters) support.
Copy options
- /L
-
List only - don't copy, timestamp or delete any files.
- /MOV
-
MOVe files (delete from source after copying).
- /MOVE
-
Move files and dirs (delete from source after copying).
- /sl
-
Copy symbolic links instead of the target.
- /Z
-
Copy files in restartable mode (survive network glitch).
- /B
-
Copy files in Backup mode.
- /J
-
Copy using unbuffered I/O (recommended for large files). ##
- /NOOFFLOAD
-
Copy files without using the Windows Copy Offload mechanism. ##
- /ZB
-
Use restartable mode; if access denied use Backup mode.
- /IPG:n
-
Inter-Packet Gap (ms), to free bandwidth on slow lines.
- /R:n
-
Number of Retries on failed copies - default is 1 million.
- /W:n
-
Wait time between retries - default is 30 seconds.
- /REG
-
Save
/R:n
and
/W:n
in the Registry as default settings.
- /TBD
-
Wait for sharenames To Be Defined (retry error 67).
Destination options
- /A+:[RASHCNET]
-
Set file Attribute(s) on destination files + add.
- /A-:[RASHCNET]
-
UnSet file Attribute(s) on destination files - remove.
- /FAT
-
Create destination files using 8.3 FAT file names only.
- /CREATE
-
CREATE directory tree structure + zero-length files only.
- /DST
-
Compensate for one-hour DST time differences.
- /PURGE
-
Delete dest files/folders that no longer exist in source.
- /MIR
-
MIRror a directory tree - equivalent to
/PURGE
plus all subfolders
(/E)
Logging options
- /L
-
List only - don't copy, timestamp or delete any files.
- /NP
-
No Progress - don't display % copied.
- /unicode
-
Display the status output as Unicode text. #
- /LOG:file
-
Output status to LOG file (overwrite existing log).
- /UNILOG:file
-
Output status to Unicode Log file (overwrite)
- /LOG+:file
-
Output status to LOG file (append to existing log).
- /UNILOG+:file
-
Output status to Unicode Log file (append)
- /TS
-
Include Source file Time Stamps in the output.
- /FP
-
Include Full Pathname of files in the output.
- /NS
-
No Size - don't log file sizes.
- /NC
-
No Class - don't log file classes.
- /NFL
-
No File List - don't log file names.
- /NDL
-
No Directory List - don't log directory names.
- /TEE
-
Output to console window, as well as the log file.
- /NJH
-
No Job Header.
- /NJS
-
No Job Summary.
Repeated Copy Options
- /MON:n
-
MONitor source; run again when more than
n
changes seen.
- /MOT:m
-
MOnitor source; run again in
m
minutes Time, if changed.
- /RH:hhmm-hhmm
-
Run Hours - times when new copies can be started.
- /PF
-
Check run hours on a Per File (not per pass) basis.
Job Options
- /JOB:jobname
-
Take parameters from the named JOB file.
- /SAVE:jobname
-
SAVE parameters to the named job file
- /QUIT
-
QUIT after processing command line (to view parameters).
- /NOSD
-
NO Source Directory is specified.
- /NODD
-
NO Destination Directory is specified.
- /IF
-
Include the following Files.
Advanced options you'll probably never use
- /EFSRAW
-
Copy any encrypted files using EFS RAW mode.
- /MT[:n]
-
Multithreaded copying,
n
= number of threads to use (1-128) #
default = 8 threads, not compatible with
/IPG
and
/EFSRAW
The use of
/LOG
is recommended for better performance.
- /SECFIX
-
FIX file SECurity on all files, even skipped files.
- /TIMFIX
-
FIX file TIMes on all files, even skipped files.
- /XO
-
eXclude Older - if destination file exists and is the same date
or newer than the source - don't bother to overwrite it.
- /XC
-
eXclude Changed files
- /XN
-
eXclude Newer files
- /XL
-
eXclude "Lonely" files and dirs (present in source but not destination)
This will prevent any new files being added to the destination.
- /XX
-
eXclude "eXtra" files and dirs (present in destination but not source)
This will prevent any deletions from the destination. (this is the default)
- /XF file [file] ...
-
eXclude Files matching given names/paths/wildcards.
- /XD dirs [dirs] ...
-
eXclude Directories matching given names/paths.
XF and XD can be used in combination e.g.
ROBOCOPY c:\source d:\dest /XF *.doc *.xls /XD c:\unwanted /S
- /IA:[RASHCNETO]
-
Include files with any of the given Attributes
- /XA:[RASHCNETO]
-
eXclude files with any of the given Attributes
- /IS
-
Include Same, overwrite files even if they are already the same.
- /IT
-
Include Tweaked files.
- /XJ
-
eXclude Junction points. (normally included by default).
- /XJD
-
Exclude junction points for directories. #
- /XJF
-
Exclude junction points for files. #
- /MAX:n
-
MAXimum file size - exclude files bigger than
n
bytes.
- /MIN:n
-
MINimum file size - exclude files smaller than
n
bytes.
- /MAXLAD:n
-
MAXimum Last Access Date - exclude files unused since
n.
- /MINLAD:n
-
MINimum Last Access Date - exclude files used since
n.
(If
n
< 1900 then
n
= number of days, else
n
=
YYYYMMDD
date).
- /BYTES
-
Print sizes as bytes.
- /X
-
Report all eXtra files, not just those selected & copied.
- /V
-
Produce Verbose output log, showing skipped files.
- /ETA
-
Show Estimated Time of Arrival of copied files.
- /DEBUG
-
Show debug volume information (undocumented)
# = New Option in Windows 7 and Windows 2008 R2
## = New Option in Windows 8 and Windows 10
File Attributes [RASHCNETO]
- R
-
Read only
- A
-
Archive
- S
-
System
- H
-
Hidden
- C
-
Compressed
- N
-
Not content indexed
- E
-
Encrypted
- T
-
Temporary
- O
-
Offline
EXIT STATUS
The return code from
robocopy
is a bitmap.
These can be combined, giving a few extra exit codes.
Any value greater than 7 indicates that there was at
least one failure during the copy operation.
Hex | Decimal | Meaning if set
|
|
0x00 | 0 | No errors occurred, and no copying was done.
|
| | The source and destination directory trees
|
| | are completely synchronized.
|
| |
|
0x01 | 1 | One or more files were copied successfully
|
| | (that is, new files have arrived).
|
| |
|
0x02 | 2 | Some Extra files or directories were detected.
|
| | No files were copiedExamine the output log
|
| | for details.
|
| |
|
0x04 | 4 | Some Mismatched files or directories were
|
| | detected. Examine the output log.
|
| | Housekeeping might be required.
|
| |
|
0x08 | 8 | Some files or directories could not be copied
|
| | (copy errors occurred and the retry limit was
|
| | exceeded). Check these errors further.
|
| |
|
0x10 | 16 | Serious error. robocopy did not copy any files.
|
| | Either a usage error or an error due to
|
| | insufficient access privileges on the source
|
| | or destination directories.
|
|
0x03 | 3 (2+1) | Some files were copied. Additional
|
| | files were present. No failure was encountered.
|
| |
|
0x05 | 5 (4+1) | Some files were copied. Some files were
|
| | mismatched. No failure was encountered.
|
| |
|
0x06 | 6 (4+2) | Additional files and mismatched files
|
| | exist. No files were copied and no failures
|
| | were encountered.
|
| | This means that the files already exist in
|
| | the destination directory.
|
| |
|
0x07 | 7 (4+1+2) | Files were copied, a file mismatch was
|
| | present, and additional files were present.
|
|
FILES
-
EXAMPLES
- 1) Simple copy of all files from one folder to another:
-
ROBOCOPY \\Server1\reports \\Server2\backup
- 2) Copy files including subfolders (even empty ones /E)
-
If this command is run repeatedly it will skip any files already in
the destination, however it is not a true mirror as any files deleted
from the source will remain in the destination.
ROBOCOPY \\Server1\reports \\Server2\backup *.* /E
- 3) List files over 32 MBytes in size:
-
ROBOCOPY C:\work /MAX:33554432 /L
- 4) Move files over 14 days old:
-
Note: the MOVE option will fail if any files are open and locked.
ROBOCOPY C:\work C:\destination /move /minage:14
- 5) Backup a Server:
-
The script below copies data from FileServ1 to FileServ2, the
destination holds a full mirror along with file security info. When
run regularly to synchronize the source and destination,
robocopy
will only copy those files that have changed (change in time stamp
or size.)
@ECHO OFF
SETLOCAL
SET _source=\\FileServ1\e$\users
SET _dest=\\FileServ2\e$\BackupUsers
SET _what=/COPYALL /B /SEC /MIR
:: /COPYALL :: COPY ALL file info
:: /B :: copy files in Backup mode.
:: /SEC :: copy files with SECurity
:: /MIR :: MIRror a directory tree
SET _options=/R:0 /W:0 /LOG:C:\batch\RoboLog.log /NFL /NDL
:: /R:n :: number of Retries
:: /W:n :: Wait time between retries
:: /LOG :: Output log file
:: /NFL :: No file logging
:: /NDL :: No dir logging
ROBOCOPY %_source% %_dest% %_what% %_options%
- 6) Run two robocopy jobs at the same time with START /Min
-
Start /Min "Job one" ROBOCOPY \\FileServA\C$\Database1 \\FileServeBackupA\c$\Backups
Start /Min "Job two" ROBOCOPY \\FileServB\C$\Database2 \\FileServeBackupB\c$\Backups
- 7) Copy only permission changes
-
(additions and removals) assuming we already have a copy of the data:
ROBOCOPY \\FileServer\C$ \\SVR-Backups\c$\Backups /E /Copy:S /IS /IT
- 8) Use the exit codes in a batch file to report anomalies:
-
if %ERRORLEVEL% EQU 16 echo ***FATAL ERROR*** & goto end
if %ERRORLEVEL% EQU 15 echo OKCOPY + FAIL + MISMATCHES + XTRA & goto end
if %ERRORLEVEL% EQU 14 echo FAIL + MISMATCHES + XTRA & goto end
if %ERRORLEVEL% EQU 13 echo OKCOPY + FAIL + MISMATCHES & goto end
if %ERRORLEVEL% EQU 12 echo FAIL + MISMATCHES& goto end
if %ERRORLEVEL% EQU 11 echo OKCOPY + FAIL + XTRA & goto end
if %ERRORLEVEL% EQU 10 echo FAIL + XTRA & goto end
if %ERRORLEVEL% EQU 9 echo OKCOPY + FAIL & goto end
if %ERRORLEVEL% EQU 8 echo FAIL & goto end
if %ERRORLEVEL% EQU 7 echo OKCOPY + MISMATCHES + XTRA & goto end
if %ERRORLEVEL% EQU 6 echo MISMATCHES + XTRA & goto end
if %ERRORLEVEL% EQU 5 echo OKCOPY + MISMATCHES & goto end
if %ERRORLEVEL% EQU 4 echo MISMATCHES & goto end
if %ERRORLEVEL% EQU 3 echo OKCOPY + XTRA & goto end
if %ERRORLEVEL% EQU 2 echo XTRA & goto end
if %ERRORLEVEL% EQU 1 echo OKCOPY & goto end
if %ERRORLEVEL% EQU 0 echo No Change & goto end
:end
- 9) Copy files from one server to another
-
ROBOCOPY \\Server1\reports \\Server2\backup *.*
IF %ERRORLEVEL% LSS 8 goto finish
Echo Something failed & goto :eof
:finish
Echo All done, no fatal errors.
SEE ALSO
simplebackupintro(1),
http://ss64.com/nt/robocopy.html,
http://ss64.com/nt/robocopy-exit.html,
http://theether.net/download/Microsoft/Utilities/robocopy.pdf,
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy
NOTES
This manual page is an extract of the web pages
http://ss64.com/nt/robocopy.html
and
http://ss64.com/nt/robocopy-exit.html
provided by
http://SS64.com.
BUGS
-
AUTHOR
robocopy was developed by Microsoft and integrated into WA2L/WinTools
by Christian Walther. Send suggestions
and bug reports related to the integration to wa2l@users.sourceforge.net
COPYRIGHT
Copyright © 2020
Christian Walther
This is free software; see
WA2LWinTools/man/COPYING
for copying conditions. There is ABSOLUTELY NO WARRANTY; not
even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This document was created by man2html
using the manual pages.
Time: 16:32:53 GMT, September 14, 2024