Robocopy or Robust File and Folder Copy application is very popular amongst Windows system administrators. Robocopy will copy the local or given file to the remote or destination location.
robocopy Features
The command robocopy provides very useful features for files copying over network. Below we will list some of them.
Resume Interrupted Copy
when the network or remote host is down during a copy the copy operation can resume where it left.
Preserve File Attributes and timestamp
of the copied file where owner and audit information is also preserved.
Ability To Update Copied File Attributes and Timestamps
of the copied files and folders which will set to the latest date and time.
Administrator Owned File Copy
is supported with the option /B
.
Mirror Mode
is provided to sync or mirror given files and folder or directory updated files will be updated and deleted files will be deleted on the target.
Skip Allready Existing Files
by checking size and timestamp information and comparing it to the source and target.
Progress Bar
will shown current copy operation graphically.
Multi-threaded copying
which will allow copy, mirror multiple files and directories at the same time which will decrease the complete copy operation time.
robocopy Command Syntax
The general syntax of robocopy
command is like below.
robocopy SOURCE DESTINATION FILE OPTIONS
- SOURCE is the source file or directory we want to copy
- DESTINATION is the destination file or directory we want to copy
- OPTIONS are different features or behaviors we want to use like recursive, verbose, extension filter, etc.
Copy Specified Folder
The most basic operation with robocopy
is copying sources folders to the destination. In this example, we will copy the directory named mytest
to the destination folder yourtest
> robocopy mytest yourtest

After copy operation, some statistics are provided by robocopy
Start
shows start time of copy operationSource
shows source directoryDest
shows destination directoryFiles
shows file filterOptions
shows given optionsTotal
shows total files and folders countCopied
shows copied files and folders countSkipped
shows not copied files and folders
Copy From Local System To Remote System
We can also copy a file and folders to the remote system. We will provide a remote system hostname or IP address before the destination path. We can use \\BACKUPSERVER or \\10.5.2.30 to specify the remote system.
In this example, we will copy the source directory named mytest
to the remote system with IP address 192.168.122.46
under the path Users\ismail
with the named yourtest
.
> robocopy mytest \\192.168.122.46\Users\ismail\yourtest

Copy Only Given File Types or Extensions
robocopy
provides some filtering features while copying files. We can specify the filenames and extensions we want to copy. This will skip other file names and extensions. We will provide the file name or extension after the destination folder.
In this example, we only want to copy *.txt
extension files.
> robocopy mytest yourtest *.txt

We can see from the output that only one file is copied but there was more than one file. Copied file name and byte count is also printed.
Copy SubFolders
By default, only first level directories are copied to the destination. If we need to copy all level and subdirectories folders we should enable /S
.
> robocopy mytest yourtest /S

List Files
There is a very useful feature for robocopy where source files are not copied and just listed. This feature can be useful if we want to check existing files and folders. We can use /L
option to print the list of files and directories.
> robocopy mytest yourtest /L

As we can see from the output that all files and folders are skipped and not copied.
List Files Recursively
While robocopy is mainly used to copy files from remote to local or local to remove we can use /L
and /S
options in order to list remote files. We can merge two options list and recursive to list all level files and folders.
> robocopy mytest yourtest /L /S
Copy Files Lower Than Given Size
While copying files we can specify the size of files we want to copy. In this example we will copy files those sizes are lower than 1K
. We will use the /MAX
option for this.
> robocopy mytest yourtest /S /MAX:1000

As we can see from the results some of the files are copied but some of them are not copied because of the size restriction.
Copy Files Higher Than Given Size
The reverse of the previous option is /MIN
option . This will only copy files higher than the given size. In this example, we will copy files higher than 1K which is 1000 kilobytes.
> robocopy mytest yourtest /S /MIN:1000

Move Files
The default behavior of robocopy
is copying files. Sometimes we may need to move files. This can be done with robocopy
too. We will provide /MOV
option in order to move files and folders.
> robocopy mytest yourtest /S /MOVE
Logging Operations
While doing copy and move operations we can also need some logs, especially in bulk data operations. We can write a log about specified operations with /LOG
option. We can also specify the log file name y adding at the end of /LOG
option. In this example, we will write robocopy
operation log to log file named backup.log
. This will prevent regular output
> robocopy mytest yourtest /S /LOG:backup.log
The log file can be listed with type
command in MS-DOS command line like below.
> type backup.log

Copy Given File Properties
Files and folders may have different properties. These properties can be used for different purposes like the listing owner, audit information, timestamps, etc. We can copy these attributes too with the robocopy command. Here are the attributes we can specify for the copy. We will also use /copy:
option by adding the property we want to copy.
D
is used to copy data propertiesA
used for attributesT
for time stampsS
is used for NTFS access control list simply ACLO
is used for the owner informationU
is used for Auditing information
In this example, we will copy time stamp attributes or properties with the following command.
> robocopy mytest yourtest /copy:T
Copy All Attributes with /copyall
We can also copy files with all properties of attributes with the /copyall
parameter like below. This is equal to the /copy:DATSOU
.
> robocopy mytest yourtest /copyall
Delete or Remove Destination Files and Directories That No Longer Exist In The Source
If we are trying to make an identical copy of the local files and directories to the remote we need to purge or remove remote files and directories that no longer exist in the source. We can use /purge
option for this.
> robocopy mytest yourtest /purge
Thanks for this article it was great but I already shifted to GS Richcopy 360. Using Robocopy was a mess, it gave errors one day or another. Now I am satisfied with GS Richcopy 360’s performance. I don’t think I am going back and use Robo. Thanks!
I’m doing fine with Robocopy, I won’t pay for any software to do something I can already do on my own. Thank you for your tutorial!
Thanks. Not a bad summary. I recommend two additions:
1) some examples for spotting new/changed files based on dates, along the /XC /XN /XO settings, especially in combos.
2) a note about how DANGEROUS the /MIR and /PURGE options can be, accidentally deleting files.