Part of being a system administrator is copying large quantities of files around, for any number of reasons. The traditional command line tools for this, Copy and Xcopy, have some limitations. For this reason, two companies extended Xcopy: Microsoft, with Robocopy, and Pixelab, with Xxcopy. Let’s compare Xxcopy vs Robocopy.
Microsoft includes Robocopy with recent versions of Windows. Even when it wasn’t included, you could get it as part of the Windows Resource Kit. Xxcopy is commercial software.
Both tools have similarities. They copy files with more options than the archaic Xcopy. Both can output to a log file. Both have the ability to delete files, not just add them. Both do a much better job of handling and duplicating permissions and other extended file attributes that modern Windows versions have. And both tools easily resume if they get interrupted.
Xxcopy’s advantages are its similarity to Xcopy and its simplicity. I most frequently used its /clone switch, like this: xxcopy /clone source destination
So if you’ve just installed a new hard drive and want to move your old one to the new one, do this:
xxcopy /clone e:\ f:\
And then you can swap the drives.
The /backup switch is safer than /clone, as it doesn’t delete any files. Since I normally used it for one-time copies to a new blank hard drive, there was no perceptible difference between the two. But if you want to play it safe, make a habit of using the /backup option.
It really just is an extended Xcopy. Sub in something more powerful for /s and off you go. If you already know Xcopy, there’s almost no learning curve.
I stopped using Xxcopy when it stopped being free for commercial use several years ago. But it worked just fine then, and presumably still works just fine now, if you’re willing to pay for it or qualify for a free license.
Some organizations won’t approve third-party software without jumping through a lot of hoops, or at all. It may very well be easier to learn Robocopy than to install Xxcopy. That was the case for me. When it came to Xxcopy vs Robocopy, I preferred Xxcopy, at least at first, but my employer at the time always chose Microsoft.
Robocopy is just there, if you’re running a fairly modern version of Windows. It’s part of the operating system, so you won’t need any approvals, and there’s nothing to download or install. That’s a huge political advantage in most companies.
I also think Robocopy’s restart capabilities with the /z switch are a bit better if the copy gets interrupted. That was the reason I started using it. When I copied files in large quantities across a WAN link that might drop occasionally, /z was a lifesaver.
If you need to copy only files, not directories, you can use the /XD switch. This isn’t an option you need all the time, but I remember when I needed it, I needed it badly. Usually I used it when I was inside a directory structure and needed to just update the directory level I was in, without going deeper.
It’s an obscure use case, but obscure use cases are what these two tools excel at.
I have no idea why Microsoft changed the syntax. It’s robocopy source destination files. Well, I kind of understand. Perhaps it’s more powerful this way. But it’s a lot more confusing. It’s almost as bad as the infamous PIP command.
It’s very easy to delete files you don’t mean to delete, and to copy a bunch of stuff where you don’t intend to. And most maddeningly to some people, Robocopy doesn’t provide a progress bar, even though Xxcopy does.
If Xcopy is a hand saw, Robocopy is a power saw with no safety features on it. If you’re a little bit afraid of it, that’s good. It means your brain works. To continue the analogy, Xxcopy is a power saw with some safety features.
That said, you can put safety features on it. The problem is you have to put the safety features on yourself.