10.0 / 2015 (2015)
|Operating system||Windows NT 4 and later|
Robocopy, or "Robust File Copy", is a command-line directory and/or file replication command. Robocopy functionally replaces Xcopy, with more options. It has been available as part of the Windows Resource Kit starting with Windows NT 4.0, and was first introduced as a standard feature in Windows Vista and Windows Server 2008. The command is robocopy.
Robocopy is noted for capabilities above and beyond the built-in Windows copy and xcopy commands, including the following:
- Ability to tolerate network interruptions and resume copying. (incomplete files are marked with a date stamp of 1970-01-01 and contain a recovery record so Robocopy knows where to continue from)
- Ability to skip
NTFS junction points which can cause copying failures because of infinite loops (
- Ability to copy file data and attributes correctly, and to preserve original
timestamps, as well as NTFS
ACLs, owner information, and audit information using
command line switches. (
/COPY:) Copying folder timestamps is also possible in later versions (
- Ability to assert the
"backup right" (
/B) so an administrator may copy an entire directory, including files denied readability to the administrator.
- Persistence by default, with a programmable number of automatic retries if a file cannot be opened.
- A "mirror" mode, which keeps trees in sync by optionally deleting files out of the destination that are no longer present in the source.
- Ability to skip files that already appear in the destination folder with identical size and timestamp.
- A continuously updated command-line progress indicator.
- Ability to copy paths exceeding 259 characters — up to a theoretical limit of about 32,000 characters — without errors.
- Multithreaded copying. (Windows 7 and Windows Server 2008 R2) 
- Return code on program termination for batch file usage.
No open files
Robocopy does not copy open files. Any process may open files for exclusive read
access by withholding the
flag during opening. Even Robocopy's Backup mode will not touch those files. (Backup
mode instead runs Robocopy as a "Backup Operator". This allows Robocopy to override
permissions settings, specifically, NTFS
Shadow Copy Service is used for such situations, but Robocopy does not use it.
Therefore, Robocopy is not useful for backing up live operating system volumes. However,
one can use a separate utility, such as
 (Free, Open
Sourced, and MIT Licensed) or
 ($30 - $50)
Windows Server 2008), to create a shadow copy of a given volume, which Robocopy can
then be directed to back up.
XP mirroring bug
Robocopy versions on systems older than Windows Vista do not mirror properly. They ignore changed security attributes of previously mirrored files. 
Multithread Copy/No Progress Bar
When specifying the
/MT[:n] option to enable multithreaded copying, the
/NP option to disable reporting of the progress percentage for files is
ignored. By default the MT switch provides 8 threads. The n is the amount of threads you
specify if you do not want to use the default.
/XF switch does not work if given both a directory and a wildcard.
/XF pictures\*.jpg generates an error.
Common usage scenarios
Here are some examples of usage. If more than one option is specified, they must be separated by spaces.
- Copy directory contents of
Directory_B(including file data, attributes and timestamps), recursively with empty directories (
Robocopy C:\Directory_A C:\Directory_B /E
- Copy directory
/E), copy all file information (
/COPYALL, equivalent to
U=aUditing info), do not retry locked files (
/R:0) (the number of retries on failed copies default value is 1 million), preserve original directories' Timestamps (
/DCOPY:T- requires version XP026 or later):
Robocopy C:\A C:\B /COPYALL /E /R:0 /DCOPY:T
- Mirror A to B, destroying any files in B that are not present in A (
/MIR), copy files in resume mode (
/Z) in case network connection is lost:
Robocopy C:\A \\backupserver\B /MIR /Z
If directory names have "funny" characters (like a space), they can be put in double quotes (as usual in command-line commands).
For the full reference, see the Microsoft TechNet Robocopy page.
Folder copier, not file copier
Robocopy syntax is markedly different from standard copy commands, as it accepts only folder names as its source and destination arguments. File names and wild-card characters (such as "*.*") are not valid source or destination arguments. Files may be selected or excluded using the optional filespec filtering argument. Filespecs can refer only to the filenames relative to the folders already selected for copying. Fully qualified path names are not supported.
For example, in order to copy the file foo.txt from directory c:\bar to c:\baz, one could use the following syntax:
Robocopy c:\bar c:\baz foo.txt
By default Robocopy outputs to the screen (or optionally to a log file) all the directories it encounters (in alphabetical order). Each directory is preceded by the number of files in that directory that fulfill the criteria for being copied. If the directory does not yet exist in the target, it is marked "New Dir". But if the directory is empty and the /E option is not used, or it contains no files meeting the criteria, a new directory should not actually be created.
If the /NFL (no file names in log) option is not used, the files being copied will be listed after the name of the directory they are in.
At the end of the output is a table giving numbers of directories, files, and bytes. For each of these, the table gives the total number found in the source, the number "copied" (but this includes directories marked "New Dir" even if they are not copied), the number "skipped" (because they already exist in the target), and the number of "mismatches", "FAILED", and "extras". "Failed" can mean that there was an I/O error that prevented a file being copied, or that access was denied. There is also a row of time taken (in which the time spent on failed files seems to be in the wrong column).
Robocopy's "inter-packet gap" (IPG) option allows some control over the network bandwidth used in a session. In theory, the following formula expresses the delay (D, in milliseconds) required to simulate a desired bandwidth (BD, in kilobits per second), over a network link with an available bandwidth of BA kbps:
In practice however, some experimentation is usually required to find a suitable delay, due to factors such as the nature and volume of other traffic on the network. The methodology employed by the IPG option may not offer the same level of control provided by some other bandwidth throttling technologies, such as BITS (which is used by Windows Update and BranchCache).
Although Robocopy itself is a command-line tool, Microsoft TechNet provides a GUI front-end called Robocopy GUI. It was developed by Derk Benisch, a systems engineer with the MSN Search group at Microsoft, and required .NET Framework 2.0. It includes a copy of Robocopy version XP026.
There are other non-Microsoft GUIs for Robocopy:
- "WinRoboCopy" revision 1.3.5953.40896 released on Apr 19, 2016.
- "Easy RoboCopy" latest version 1.0.14 released in May 26, 2016.
- A program by SH-Soft, also called "Robocopy GUI" v22.214.171.124 (October 8, 2005).
- Cinchoo EazyCopy v126.96.36.199
Ken Tamaru of Microsoft has also developed a copying program similar to Robocopy, called RichCopy, which is available on Microsoft TechNet. While it is not based on Robocopy, it offers similar features, and it does not require .NET Framework. 
Note: Several versions of Robocopy do not show the version number when executing Robocopy /? on the command line.
|Product version||File version||Year||Origin||Other|
|1.70||-||1997||Windows NT Resource Kit|
|1.71||188.8.131.52||1997||Windows NT Resource Kit|
|1.95||184.108.40.206||1999||Windows 2000 Resource Kit|
|1.96||220.127.116.11||1999||Windows 2000 Resource Kit||© 1995-1997|
|XP010||18.104.22.1680||2003||Windows 2003 Resource Kit|
|XP026||5.1.2600.26||2005||Downloaded with Robocopy GUI v.3.1.2|
|22.214.171.1247||126.96.36.1997||2008||Bundled with Server 2008|
|XP027||188.8.131.527||2008||Bundled with Windows Vista, Server 2008r2, Windows 7||© 1995-2004|
|6.2||6.2.9200||2012||Bundled with Windows 8||© 2012|
|6.3||6.3.9600||2013||Bundled with Windows 8.1||© 2013|
|10.0||10.0.10240.16384||2015||Bundled with Windows 10||© 2015|
- List of file copying software
- Command line
- Jump up ^ "Robocopy XP010 FAQ". Windowsitpro.com. 2004-11-15. Retrieved 2012-11-11.
- Jump up ^ "Multi-threaded robocopy for faster copies - Grant Holliday's Blog - Site Home - MSDN Blogs". Blogs.msdn.com. 2009-10-23. Retrieved 2012-11-11.
- Jump up ^ "Return codes that are used by the Robocopy utility in Windows Server 2008 or Windows Server 2008 R2". Support.microsoft.com. 2012-02-17. Retrieved 2012-11-11.
Jump up ^
"CreateFile function". MSDN.
FILE_SHARE_READ [...] Enables subsequent open operations on a file or device to request read access. Otherwise, other processes cannot open the file or device if they request read access.
Jump up ^
"Robocopy.exe - Robust File Copy Utility - Version XP010"
Backup mode copies [...] enable you to copy some files as a Backup Operator that you would not be able to copy as a normal user.
Jump up ^
"Default groups". Microsoft TechNet.
Backup Operators [...] Members of this group can back up and restore all files [...], regardless of their own individual permissions on those files.
Jump up ^
"ShadowSpawn". Craig Andera. Retrieved
ShadowSpawn.exe is an open source MIT licensed tool that creates and manages shadow copies.
Jump up ^
"GSCopyPro". GuruSquad. Retrieved
gscopypro.exe is a tool that works similar to robocopy but has the ability to copy open files.
Jump up ^
"Diskshadow". Microsoft TechNet.
DiskShadow.exe is a tool that exposes the functionality offered by the Volume Shadow Copy Service (VSS).
- Jump up ^ "Microsoft's Robocopy compromise". ZDNet. 2008-08-04. Archived from the original on March 17, 2010. Retrieved 2012-11-11.
- Jump up ^ "Ugly bug in Robocopy - ignoring security on file level - Martin Zugec blog". Msmvps.com. 2008-03-03. Retrieved 2012-11-11.