RoboCopy : A Complete Guide


Robocopy also is known as Robust File Copy Command. By using Robocopy Windows Command Line utility we can copy files, directories and even drives too from one location to another location.

Robocopy is a Windows command-line tool used for file and folder Replication.

Robocopy is one of the most-used command-line utilities to copy/sync large volumes of data in Windows.

It’s such a well-liked tool due to how powerful it’s. But it is complex as much as it’s power

Robocopy helps to maintain identical copies of a directory structure on a single PC or in a separate network location.

In this tutorial-Article, we’re going to make it simpler as much as it’s complexity. After reading this complete and ultimate Robocopy guide, You will be able to use Robocopy Command with ease

It’s a replacement to the less versatile xcopy utility.

It allows you to specify a drive path or server path to copy/move files to a command prompt.

Robocopy command is able to classify files by whether they exist in the source directory or in the destination directory, or in both

Robocopy Versions

The versions of Robocopy are as below.

Several versions of Robocopy do not report the version number when executing robocopy /? on the command line.

However, their version is stored inside the executable itself and can be queried with PowerShell for example (gcm robocopy | fl *) or inside Windows Explorer by right-clicking on Robocopy.exe, selecting Properties, then clicking on the Details tab.

Robocopy Features

Robocopy Commandline utility can

Robocopy command line utility can copy files over a network with resume capabilities ( I personally have used in between India-USA office over VPN and working fine to sync svn repo)

Robocopy command can copy file and directory attributes preserving timestamps

Robocopy command can copy NTFS permissions, owners and auditing info

Robocopy command Can copy directory timestamps

Robocopy Can copy files in ‘backup’ mode to ensure files are copied even those rights have been denied to the administrator

Robocopy command can make Automatic retries,Can sync two folders,Is smart enough to skip files already copied,Can copy paths larger than the 256 character path limit,Perform asynchronous copies using it’s multithreading ability.

Robocopy command can Returns standardized exit codes for use in scripts

A continuously updated command-line progress indicator.

A “mirror” mode, which keeps trees synchronized by also deleting files in the destination that are not present in the source.

Ability to tolerate network interruptions and resume copy (incomplete files are marked with a date stamp of 1980-01-01 and contain a recovery record so Robocopy knows where to continue from).

Ability to copy file data and attributes correctly, and to preserve original timestamps, as well as NTFS ACLs, owner information, and audit information using the /COPYALL or /COPY: command line switches.

Beginning with the XP026 version, the ability to copy folder (or directory) date and timestamps (/DCOPY:T), even with the ability to update folder timestamps (copied from existing folders) on folders already created from previous versions (that did not copy the folder date and timestamps).

Ability to assert the Windows NT “backup right” (/B) so an administrator may copy an entire directory, including files denied readability to the administrator.

Ability to copy paths exceeding 259 characters — up to a theoretical limit of about 32,000 characters — without errors.

Multithreaded copying introduced with Windows 7 and Windows Server 2008 R2.[2]

Return code on program termination for batch file usage.

Usefile names, wildcard characters,paths,or file attributes to include or exclude source files as candidates for copying.

exclude directories by name of by path

delete source files and directories after copying(that is,move rather than copy them)
Delete destination files and directories that no longer exist in the source.
Control the number of times the program retries an operation after encountering a recoverable network error.

Schedule copy jobs to run automatically

Specify when copying is to be performed
Monitor a directory tree for changes.

Download Robocopy

Robocopy is a command line utility for copying files. This command is available in Vista and Windows 7 by default. For Windows XP and Server 2003 this tool can be downloaded as part of Server 2003 Windows Resource Kit tools. This package is available in the below location.

Link 1:
Link 2:

Robocopy Syntax

Run Robocopy Help command robocopy /? And you will have a multiple options.

When you check each section, you will have a more options in each section.

robocopy <Source> <Destination> [<File>[ …]] [<Options>]

<Source>Specifies the path to the source directory.
<Destination>Specifies the path to the destination directory.
<File>Specifies the file or files to be copied. You can use wildcard characters (* or ?), if you want. If the File parameter is not specified, *.* is used as the default value.
<Options>Specifies options to be used with the robocopy command.

Copy Option

/sCopies subdirectories. Note that this option excludes empty directories.
/eCopies subdirectories. Note that this option includes empty directories.
/lev:<N>Copies only the top N levels of the source directory tree.
/zCopies files in restartable mode.
/bCopies files in Backup mode.
/zbUses restartable mode. If access is denied, this option uses Backup mode.
/efsrawCopies all encrypted files in EFS RAW mode.
/copy:<CopyFlags>Specifies the file properties to be copied. The following are the valid values for this option:
D Data
A Attributes
T Time stamps
S NTFS access control list (ACL)
O Owner information
U Auditing information
The default value for CopyFlags is DAT (data, attributes, and time stamps).
/dcopy:<copyflags>Defines what to copy for directories. Default is DA. Options are D = data, A = attributes, and T = timestamps.
/secCopies files with security (equivalent to /copy:DATS).
/copyallCopies all file information (equivalent to /copy:DATSOU).
/nocopyCopies no file information (useful with /purge).
/secfixFixes file security on all files, even skipped ones.
/timfixFixes file times on all files, even skipped ones.
/purgeDeletes destination files and directories that no longer exist in the source.
/mirMirrors a directory tree (equivalent to /e plus /purge).
/movMoves files, and deletes them from the source after they are copied.
/moveMoves files and directories, and deletes them from the source after they are copied.
/a+:[RASHCNET]Adds the specified attributes to copied files.
/a-:[RASHCNET]Removes the specified attributes from copied files.
/createCreates a directory tree and zero-length files only.
/fatCreates destination files by using 8.3 character-length FAT file names only.
/256Turns off support for very long paths (longer than 256 characters).
/mon:<N>Monitors the source, and runs again when more than N changes are detected.
/mot:<M>Monitors source, and runs again in M minutes if changes are detected.
/MT[:N]Creates multi-threaded copies with N threads. N must be an integer between 1 and 128. The default value for N is 8.
The /MT parameter cannot be used with the /IPG and /EFSRAW parameters.
Redirect output using /LOG option for better performance.
Note: The /MT parameter applies to Windows Server 2008 R2 and Windows 7.
/rh:hhmm-hhmmSpecifies run times when new copies may be started.
/pfChecks run times on a per-file (not per-pass) basis.
/ipg:nSpecifies the inter-packet gap to free bandwidth on slow lines.
/slDon’t follow symbolic links and instead create a copy of the link.

File Selection Options

/aCopies only files for which the Archive attribute is set.
/mCopies only files for which the Archive attribute is set, and resets the Archive attribute.
/ia:[RASHCNETO]Includes only files for which any of the specified attributes are set.
/xa:[RASHCNETO]Excludes files for which any of the specified attributes are set.
/xf <FileName>[ …]Excludes files that match the specified names or paths. Note that FileName can include wildcard characters (* and ?).
/xd <Directory>[ …]Excludes directories that match the specified names and paths.
/xcExcludes changed files.
/xnExcludes newer files.
/xoExcludes older files.
/xxExcludes extra files and directories.
/xlExcludes “lonely” files and directories.
/isIncludes the same files.
/itIncludes “tweaked” files.
/max:<N>Specifies the maximum file size (to exclude files bigger than N bytes).
/min:<N>Specifies the minimum file size (to exclude files smaller than N bytes).
/maxage:<N>Specifies the maximum file age (to exclude files older than N days or date).
/minage:<N>Specifies the minimum file age (exclude files newer than N days or date).
/maxlad:<N>Specifies the maximum last access date (excludes files unused since N).
/minlad:<N>Specifies the minimum last access date (excludes files used since N) If N is less than 1900, N specifies the number of days. Otherwise, N specifies a date in the format YYYYMMDD.
/xjExcludes junction points, which are normally included by default.
/fftAssumes FAT file times (two-second precision).
/dstCompensates for one-hour DST time differences.
/xjdExcludes junction points for directories.
/xjfExcludes junction points for files.

Retry Options

/r:<N>Specifies the number of retries on failed copies. The default value of N is 1,000,000 (one million retries).
/w:<N>Specifies the wait time between retries, in seconds. The default value of N is 30 (wait time 30 seconds).
/regSaves the values specified in the /r and /w options as default settings in the registry.
/tbdSpecifies that the system will wait for share names to be defined (retry error 67).

Logging options

/lSpecifies that files are to be listed only (and not copied, deleted, or time stamped).
/xReports all extra files, not just those that are selected.
/vProduces verbose output, and shows all skipped files.
/tsIncludes source file time stamps in the output.
/fpIncludes the full path names of the files in the output.
/bytesPrints sizes, as bytes.
/nsSpecifies that file sizes are not to be logged.
/ncSpecifies that file classes are not to be logged.
/nflSpecifies that file names are not to be logged.
/ndlSpecifies that directory names are not to be logged.
/npSpecifies that the progress of the copying operation (the number of files or directories copied so far) will not be displayed.
/etaShows the estimated time of arrival (ETA) of the copied files.
/log:<LogFile>Writes the status output to the log file (overwrites the existing log file).
/log+:<LogFile>Writes the status output to the log file (appends the output to the existing log file).
/unicodeDisplays the status output as Unicode text.
/unilog:<LogFile>Writes the status output to the log file as Unicode text (overwrites the existing log file).
/unilog+:<LogFile>Writes the status output to the log file as Unicode text (appends the output to the existing log file).
/teeWrites the status output to the console window, as well as to the log file.
/njhSpecifies that there is no job header.
/njsSpecifies that there is no job summary.

Job Options

/job:<JobName>Specifies that parameters are to be derived from the named job file.
/save:<JobName>Specifies that parameters are to be saved to the named job file.
/quitQuits after processing command line (to view parameters).
/nosdIndicates that no source directory is specified.
/noddIndicates that no destination directory is specified.
/ifIncludes the specified files.

Exit (return) codes

0No files were copied. No failure was encountered. No files were mismatched. The files already exist in the destination directory; therefore, the copy operation was skipped.
1All files were copied successfully.
2There are some additional files in the destination directory that are not present in the source directory. No files were copied.
3Some files were copied. Additional files were present. No failure was encountered.
5Some files were copied. Some files were mismatched. No failure was encountered.
6Additional 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.
7Files were copied, a file mismatch was present, and additional files were present.
8Several files did not copy.


Note: Any value greater than 8 indicates that there was at least one failure during the copy operation.

Example 1

To copy two files from folder c:\xyz to c:\xyz, the following syntax is used:

robocopy c:\xyz c:\xyz test1.txt test2.db

Example 2

Copy All PDFs

robocopy c:\xyz c:\xyz *.pdf

Example 3

To copy all files (not directories) in the “xyz” directory to the “xyz2” directory

robocopy c:\xyz c:\xyz2

Example 4

Robocopy Command to copy all files and folders (including empty ones) will be copied from the “xyz” directory to the “xyz2” directory

robocopy c:\xyz c:\xyz2 /e

Example 5

Robocopy command to mirror what is in c:\xyz into c:\xyz2 and purge any files in the xyz2 directory that do not exist in the XYZ directory. Becareful when yoou use /mir switch since it is deleting files that do not match in the destination directory.

robocopy c:\xyz c:\xyz2 /MIR

robocopy c:\xyz c:\xyz2 /MIR /Sec (copy permissions too)

robocopy c:\xyz c:\xyz2 /MIR /Sec /w:0 /r:0 ( wasting time on re-tries use w:0 and r:0 flag to skip if unable to copy due to any reason. )

Example 6

Robocopy command to copy any of the files in the xyz directory on the network computer named PC1 to the current computer xyz2 directory.

robocopy \\PC1\xyz C:\xyz2

Example 7

To get logs in a file and console too

robocopy c:\xyz c:\xyz2 /MIR /Sec /w:0 /r:0   /log:c:\Logs\xyz.log (To get logs in a file)

robocopy c:\xyz c:\xyz2 /MIR /Sec /w:0 /r:0   /log:c:\Logs\xyz.log /tee (To get log in a console)

Example 8

To exclude folder

robocopy c:\xyz c:\xyz2 /MIR /Sec /w:0 /r:0   /log:c:\Logs\xyz.log /tee /XD “\\PC1\xyz\~snapshot (To exclude snapshot folder)


I have tried to cover Robocopy command in depth. I hope It will be useful to my readers. Comments and suggestions are always appreciated! I want to add Robocopy GUI and some useful ROBOCOPY Scripts too. But it will become more lengthy. So I will write and share later.

Add a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.