Robocopy for Microsoft Windows: A Brief Overview
Introduced with the Windows NT 4.0 Resource Kit in the mid-90s, Robocopy has become the de facto file copy tool for Windows environments. Robocopy (Robust File Copy) is a command-line tool for copying files, folders, and drives to and from Microsoft Windows systems. Robocopy is an improved version of the XCOPY and copy commands used in Microsoft Windows.
While Robocopy works well for copying files and folders in Microsoft Windows environments, there are a number of administration challenges.
In summary, these drawbacks include:
- Microsoft Windows only: Robocopy does not support copying files and folders to Linux, Mac, or other systems.
- Complexity: Administrators need to familiarize themselves with Robocopy syntax and feel comfortable using the command line for scripting copy jobs via Powershell or other tools. Creating, managing, and troubleshooting scripts from the CLI is arduous.
- Buggy: Robocopy is notorious for bugs. Scripting can also be error-prone.
- No real-time replication support. Robocopy is manually driven and does not automatically copy changed data in real time.
A Robust and Easy Robocopy Alternative: Resilio Connect
Unlike Robocopy, Resilio Connect is cross-platform: Resilio supports MacOS, Windows, Linux, Unix, iOS, Android, FreeBSD, and other platforms, too. So if you’re looking for an easy-to-use, reliable, real-time alternative to Robocopy, check out Resilio Connect. All transfers and sync jobs are centrally managed and controlled through an easy-to-use management console.
Resilio can’t be beat in speed. Our team achieved transfer throughput speeds of over 100 Gbps. Early tests of a next-generation release are getting speeds of 200 Gbps across cloud regions. Two test results of the current generation included:
- A 1 TB data transfer between two different Azure cloud regions in 90 seconds.
- A 500 GB data transfer in the Google Cloud Platform from London to Australia in 50 seconds.
For a live demonstration of the blazing-fast replication, transfer, and sync speeds you can achieve with Resilio, schedule a demo.
Why Resilio Connect Instead of Robocopy?
Resilio Connect is a superior alternative to Robocopy when enterprise customers require:
- Ease of use: Through an easy-to-use graphical user interface in the Resilio Connect Management Console, all jobs for copying, synchronizing, scripting, and moving files and folders can be easily configured and centrally monitored and managed.
- Real-time file sync — no matter where in the world your files are. Updates are efficiently captured and propagated in (near) real-time.
- Cross-platform support is not limited to Windows 10 and other versions of Windows and Windows Server. Connect works well copying files from across Windows, Mac, Linux, Android, and some NAS platforms.
- Scalability to support large-capacity file systems (measured in TBs and PBs) containing many files (sometimes measured in millions) of varying file sizes (small to very large).
- Flexible N-way synchronization (uni- , bi- , multi-directional, or full mesh).
- Moving data over unreliable networks such as cell, sat, or WANs: Resilio Connect is WAN-optimized and versatile for use over any network, with built-in compression, delta detection, and efficient recovery from failures to minimize data transfer.
- Centralized management: Resilio Connect enables all jobs to be centrally managed and easily configured for Distribution, Sync, Consolidation, and Scripting. Log files, events, and notifications are all centrally managed.
- Automation: All data movement jobs can be automated, scheduled, scripted, or integrated into workflows through a complete REST API.
- Multi-cloud-ready with your cloud storage vendor of choice — for on-prem, hybrid, or cloud-native deployments.
For more information on how Resilio Connect functions as a superior alternative to Robocopy, see our Robocopy alternatives post.
Robocopy vs. Rsync
Robocopy is the Windows alternative to the well-known, open-source, Linux-based Rsync. Both Robocopy and Rsync are designed for automated copying while maintaining file metadata such as permissions, extended attributes, owner information, timestamps, and properties of the objects copied.
You can run Rsync on Linux, Unix, Windows, and MacOS. It’s OK for small files or directories, but Rsync has a number of downsides:
- No real-time file change detection.
- Poor scalability: True parallel Rsync doesn’t exist and approximations to parallel functionality do not perform well.
- Slow sync over WAN due to the point-to-point architecture and TCP/IP protocol.
- Reliance on static IPs (a new IP requires human intervention to fix).
- File size limitations.
You can read more about these shortcomings in our post on alternatives to Rsync.
Rsync and Robocopy both require regular troubleshooting. (You can read more in our post on troubleshooting Rsync).
Here’s a deeper dive into Robocopy functions, followed by common challenges and solutions.
Robocopy Moves Files
Robocopy is able to:
- Move folders/files with content to different locations.
- Mirror folders/files using the /mir Robocopy command.
- Perform recursive folder copying.
- Maintain folder and file attributes.
The functionality of Robocopy to move files is straightforward. The tool is usually used to synchronize or mirror files and folders using the “/mir” command. Yet, you must be familiar with other Windows commands, and there is some complexity in synchronizing subdirectories and navigating directory trees in general.
If a file or directory tree is moved — the move is not tracked! So you have to keep track of all the files and folders you move.
When considering an alternative to Robocopy, it’s important to consider both its capabilities and drawbacks. Robocopy has a set of basic capabilities such as:
- Tolerating network interruptions and resuming copying.
- Skipping NTFS junction points which can cause copying failures due to infinite loops.
- Retaining folder metadata: copy file data and attributes correctly, preserve original timestamps, as well as NTFS ACLs, and owner and audit information using command line switches.
- Asserting the Windows NT “backup right” 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.
- Return code on program termination for batch file usage.
Robocopy Challenges and Solutions
As stated earlier, using Robocopy to move files has some known limitations and bugs. Robocopy is a decent solution for a single user sharing a few files within their Windows environment. However, when broader use and scalability are desired across an enterprise, or between organizations, Robocopy alternatives like Resilio Connect should be considered.
Robocopy Operating System Limitations
Moving files with Robocopy only works with Windows. If some of your machines use other operating systems, such as Linux or Mac, you won’t be able to use Robocopy on those platforms.
Resilio Connect is cross-platform, running on Windows, Mac, and Linux, among other platforms.
With Resilio Connect, it’s easy to centrally manage synchronization and transfer jobs across multiple platforms.
Robocopy Performance vs. Resilio Connect
The only way to speed up Robocopy is to scale up within a single system through multithreading. Multithreading is the ability of a CPU to execute multiple processes or threads concurrently, as supported by the operating system. So the speed of file processing with Robocopy depends on the type and number of CPUs within a single system. Transfer performance will be limited by the CPU and bandwidth available to a single system.
Conversely, Resilio Connect utilizes a scale-out architecture, where transfer performance can be increased as systems (peers) are added to the job. Adding more systems running Resilio Connect agents increases transfer and synchronization performance.
Robocopy Difficulties with Files
By default, Robocopy works within specified folders. If you need Robocopy to exclusively sync files or folders, this takes some additional effort. To move files using Robocopy, files need to be selected or excluded using the optional filespec filtering argument. Filespecs can only refer to the filenames relative to the folders already selected for copying. Fully-qualified path names are not supported. Robocopy syntax also requires error handling. This behavior poses challenges to copying a subset of files within a large folder hierarchy.
Most other Robocopy alternatives, including Resilio Connect, rsync, and other vendor-specific utilities work with both files and folders. Resilio Connect uses “jobs” which include consolidation (collecting files), distribution (copying files), synchronization, and scripting.
Robocopy File Size Limit
Robocopy can experience file size limitations, as Robocopy can’t handle large files. Windows has a finite amount of memory pool space that can be allocated to programs such as Robocopy; if the program uses all the memory available from that pool, errors start occurring.
Resilio Connect, as an alternative to Robocopy, optimizes the checksum calculations so that Resilio Connect can sync files of any size — entirely eliminating the file size limitation seen with Robocopy and enabling exceptionally fast file transfer speeds for files of any size.
Robocopy and SSH
Robocopy does not encrypt its connections: there is no way to configure SSH within Robocopy. Thus, Robocopy requires users to install and configure additional encryption channels such as SSH or VPNs. Using additional channels adds complexity (such as managing and supporting configuration changes and other implementation details).
A good Robocopy alternative should include native encryption and not rely on 3rd-party products. Resilio Connect uses AES256 in CTR mode to encrypt all traffic sent between endpoints, including all data and control traffic.
Robocopy and Throttle Bandwidth/Limit Bandwidth
Robocopy is able to throttle bandwidth but the delay parameter of the desired bandwidth speed must be calculated by a user according to best practices. In practice, however, some experimentation is required to find a suitable delay due to factors such as the nature and volume of other traffic on the network. Moreover, these factors are constantly changing, so be prepared to monitor your network and tweak bandwidth parameters for optimal results when using Robocopy vs. alternatives.
Resilio Connect throttles bandwidth per job and with optimal dynamic parameters automatically; users don’t need to monitor and configure these settings.
Robocopy has several known bugs like infinite loops while copying folders based on junction or reparse points in Windows NTFS.
Another common bug in Robocopy is mirroring files and folders on systems older than Windows Vista. If a folder is not processed properly, Robocopy produces infinite loops, which have to be manually canceled and fixed.
For multithreading, tracking a job’s progress using the visual copying progress bar is missing. With large-sized files, a user is also not able to track the copy job progress. Hence, real-time Robocopy synchronization is not possible.
With Resilio Connect, you can track the progress of all operations simultaneously and in real-time thanks to an easy-to-use and reliable graphical user interface.
Resilio Connect vs. Robocopy
Overall, if you’re looking for a reliable, easy-to-use, cross-platform Robocopy alternative, Resilio Connect is the strongest solution. Through real-time data synchronization purpose-built for the enterprise, Resilio Connect significantly improves performance over Robocopy.
Here’s a quick feature-by-feature comparison between Robocopy and Resilio Connect:
|Large file size||✔|
Resilio Connect is used by leading organizations, such as Match.com, Skywalker Sound, Deutsche Aircraft, Larian Studios, and more. To see for yourself how Resilio can provide you with fast, reliable sync, schedule a demo.