Robocopy, or “Robust File Copy“, is a command-line directory and/or file replication command. Robocopy functionally an alternative of copy, with more options.
It has been available as part of the Windows Resource Kit and was first introduced as a standard feature in Windows Vista and Windows Server 2008.

SYNTAX : 

ROBOCOPY Source_folder Destination_folder [files_to_copy] [options]

KEY :

file(s)_to_copy : A list of files or a wildcard.
(defaults to copying *.*)

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

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 = no 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 dirrectories (delete from source after copying).

/Z : Copy files in restartable mode (survive network glitch).
/B : Copy files in Backup mode.
/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.
/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 may 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 = no. 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 | /XN : eXclude Changed | 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.
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).

/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 = n 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

FILE ATTRIBUTES :

R – Read only
A – Archive
S – System
H – Hidden
C – Compressed
N – Not content indexed
E – Encrypted
T – Temporary
O – Offline