Plus: What happened to Karen’s PowerTools?
Most of this article is about some free templates that can simplify your use of Robocopy — a free, powerful (but underappreciated) command-line copy/clone/sync tool that’s built into all current Windows version.
But before digging into Robocopy, please let me tell you about a related issue: The rise, fall, and partial re-rise of Karen’s PowerTools — a collection of free apps once offered through Windows Magazine. One of the most popular PowerTools was Replicator; a clone/copy/sync tool that’s sort of like Robocopy with a point-and-click interface.
Replicator was just one of dozens of high-quality Karen’s PowerTools apps. Each month, the apps’ author, the late Karen Kenworthy, would identify an annoying little software problem or deficiency in Windows or its existing apps; she’d then craft a small, focused, free utility that addressed the problem; and then write a column about the problem, and how her free tool addressed it.
Her apps were initially available through Windows Magazine, but Karen later spun out her own side business of bundling and maintaining the apps for interested readers.
But, sadly, Karen died prematurely; and a few years later, Windows Magazine shut down. Karen’s already-distributed apps and her PowerTools website lingered on via inertia, but were unmaintained.
The apps were solid and didn’t need much upgrading: For example, I’d personally used her Replicator program across whole generations of Windows, up through Win10. For a full decade or so, Replicator always worked flawlessly — testament to how robust Karen’s apps were. Hat’s off to you, Karen, wherever you are!
But a change introduced by a Windows 10 update a while ago finally broke Karen’s old code.
I’d come to depend on Replicator’s effortless daily syncing of various folders and groups of folders: I’d run Replicator at the end of every day to ensure that local and cloud versions of several important folders were fully up to date and synchronized. Whatever changes — additions, deletions, renamings, or whatever — I’d done in the source folder would be 100% replicated in the destination folder. Easy, effortless, and all but fully automatic. I wanted — and needed — a replacement, fast!
Since then, two things happened: (1) I found a workable alternative; and (2) a working version of Replicator became available!
A quick-and-dirty Replicator alternative
I first looked at some old standby tools — xcopy and xxcopy, for example. But the path of least resistance for me was to use Microsoft’s free Robocopy tool (https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy) to produce a quick-and-dirty command-line equivalent for Replicator.
Robocopy — which has grown in power over the years — can serve exactly the same purpose as Replicator, and is much faster as well, especially when you’re processing deep-nested folders with many files. (Most of the extra speed comes from its not having a GUI.)
I use Robocopy every day to create a local, live, byte-for-byte, clone of my Documents folder and all its subfolders; the copy is then synced to the cloud. This gives me three copies of every important file — the live original copy, a set-aside local copy, and one remote copy (in the cloud) — all 100% identical, and all done fast and virtually automatically. (I use other backup methods, too, but the above is the part that involves Robocopy.)
RoboCopy is undeniably fast and powerful, but it’s also a classically raw command-line tool; as such, it operates without much of a safety net — it will attempt to do exactly what you tell it, even if you tell it something to do something harmful. You have to be careful.
That need for carefulness is obvious in Robocopy’s old-school syntax, which can look daunting to those who have known only graphic interfaces. For example, here’s a real-life Robocopy command line I use daily (note: this is all one continuous line; one long command):
robocopy C:\Users\fred\DOCUMENTS C:\Users\fred\OneDrive\DOCUMENTS /v /e /xo /copy:DAT /w:2 /r:5 /purge /log:C:\Users\fred\Desktop\SYNCLogDOCs.txt
I’ll explain the above in a moment; I’m showing it to you now so you can see that while RoboCopy is fast, free, and powerful, it’s not point-and-click simple to set up properly.
Karen’s Replicator is much, much easier to use — when it works.
And that leads to the second piece of good news.
Karen’s PowerTools is coming back!
Joe Winett <joe@karenware.com>, a friend of Karen’s and her family, now runs KarenWare.com, and is working on the next release of Karen’s Power Tools.
Along the way, he discovered that one old version of Replicator that had shipped on CD was slightly different from the web-based version; and the CD version did in fact still work properly under Win10. Joe took down the website’s nonworking copy and replaced it with the alternate code, which is now available on the karenware.com website. (For those interested: Joe also runs the Karen’s PowerTools social media, such as https://www.facebook.com/KarensPowerTools/.)
If you simply want a working copy of Replicator, you now know where to get it (karenware.com). I hope Joe will have updates of other PowerTools as times goes on.
But if you’d like to use Windows’ fast, built-in, always-available Robocopy instead, well, that’s the rest of this article.
The Robocopy Alternative
Here’s the official Robocopy info: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy
The core of Robocopy is very simple. The basic command template is:
robocopy <Source Folder> <Destination Folder> [<File>[optional…]] [<Modifiers>]
Breaking it down by elements:
Robocopy is, of course, the name of the app.
Source Folder is the folder that contains the files you want to copy or clone from; you need to enter the full path and folder name. (Don’t enter any filenames here; and don’t worry about subfolders — that stuff comes later.)
Destination Folder is the folder where the copied/synced files are going to; again, enter the full path and folder name, but no file names.
File[ optional…] lets you target one or more specific files within the folder, if you wish; if you don’t enter any filenames, RoboCopy defaults to all files (e.g. *.*) in the folder, and that’s usually what you want.
Modifiers (what Microsoft calls “Options”) is where it gets tricky; there are literally four or five dozen options; see the official site for the full list at https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy ; or, in Win10, by opening a command line and typing:
robocopy /?
Either way, you’ll see a list of every allowed software “switch” (option/modifier), and how to string things together.
But it’s all fairly straightforward fill-in-the-template stuff as long as you pay attention to what you’re doing: You won’t get much feedback or in-advance error-checking , so make sure your work is correct before unleashing it on a system, even as a test.
I won’t repeat the info available on the official Microsoft Robocopy site. Instead, let’s dissect the real-life command line that I use every day to see how it works. (I don’t re-type the command each time, of course; I run it via an ancient .bat file which, for me, was again the path of least resistance for such a basic task.)
robocopy C:\Users\fred\DOCUMENTS C:\Users\fred\OneDrive\DOCUMENTS /v /e /xo /copy:DAT /w:2 /r:5 /purge /log:C:\Users\fred\Desktop\SYNCLogDOCs.txt
Here’s what’s going on:
Robocopy, of course, launches the Robocopy app.
C:\Users\fred\DOCUMENTS = the SOURCE directory; the place files are being drawn FROM. This can be any valid path and folder, but in this case, is my primary DOCUMENTS folder. I’ll want to include its subfolders too; but again, that comes later.
C:\Users\fred\OneDrive\DOCUMENTS = the TARGET or DESTINATION directory; where the files are going TO. This can also be any valid path and folder; in my case, I’m syncing my DOCUMENTS folder to my local copy of OneDrive’s DOCUMENTS folder; OneDrive will automatically upload these changes to the cloud, giving me three separate copies of each file — the local original and a local copy (in the OneDrive folder), plus the cloud copy. (Note: I also use File History and a regular backup app to make additional copies, which is far more copies/backups than most people need; but it serves my own belt-and-suspends/no-byte-shall-ever-be-lost approach to backups and versioning. 🙂 But don’t let my entirely voluntary complications impede you: Your SOURCEs and TARGETs can simply be any locations you have legit access to.)
/v = verbose mode (display all messages/errors in full, to help with troubleshooting).
/e = copy all subdirectories/subfolders — the entire sub-tree, all the way to the bottom — under the SOURCE. If omitted, Robocopy only works on the specified SOURCE folder, and ignores its subfolders.
/xo = exclude (skip) older files; i.e. Robocopy will work only on files newer than those already in the destination; i.e. it won’t re-copy files that haven’t changed — a big time-saver.
/copy:DAT = copy only the major Date/Attributes/Time information for each file (e.g. don’t fiddle with file permissions, security, or extended attribute settings).
/w:2 = wait 2 sec between file any access/copy retries (helps prevents the system from wheel-spinning with, say, temporarily in-use files).
/r:5 = cap the retry limit at 5 times; if a problem persists longer than that, skip the file and go on to the next one (also helps prevents wheel-spinning when errors occur).
/purge = (NOTE: DANGEROUS!) This setting deletes (purges) any files in the DESTINATION that aren’t in the SOURCE. In other words, it keeps the current content of the DESTINATION folder 100% identical to the SOURCE; older and unmatched copies are deleted from the DESTINATION without further confirmation.
/log:C:\Users\fred\Desktop\SYNCLogDOCs.txt = create a logfile with any name you choose in any destination you choose. In this case, Robocopy will create a logfile I’ve arbitrarily named SYNCLogDOCs.txt and place it in the C:\Users\fred\Desktop\ folder. And, because we earlier specified /v (verbose messages), the log file will contain complete information on exactly what Robocopy did with every file it touched, as well as providing summary info at the end of the logfile. This way, when Robocopy is done, I can open the SYNCLogDOCs.txt file on my desktop to see exactly what transpired.
More samples and examples
The above is for syncing folders, but you also can use Robocopy for a simple form of backup: If you omit the /purge, Robocopy will just copy newer and changed files from to , without deleting anything. In this way, the DESTINATION will still retain previously-copied older files that may have been deleted from the SOURCE. This is useful for ordinary “save everything” near-live backups, and is especially good when you’re first experimenting with Robocopy, because nothing will get erased if your Robocopy command does something you didn’t expect.
In template form, a purge-less variant of the command you saw earlier looks like this:
robocopy <Source Folder> <Destination Folder> /v /e /xo /log:<full_path\logfilename>
Please refer to the element-by-element breakdown above to understand what these commands do (the serve the same function in both examples); or to substitute and alter the commands you may need for your specific setup.
Once you have the basic Robocopy command line working properly, you can automate it (so you won’t have to re-type it each time) by making it part of a script or batch file (batch refresher: https://www.makeuseof.com/tag/write-simple-batch-bat-file/).
Or, you can dress it up with a simple text interface. For example, the following bare-bones sample script, if run as (say) a batch file, will prompt you to enter/paste your Source and Destination locations; asks you to verify that what you entered is ok; and then, if you give approval, will execute whatever Robocopy command you’ve crafted; again, you won’t have to re-type the command line each time.
echo off
cls
SET/P frompath=Enter or copy/paste full SOURCE FOLDER path:
SET/P topath=Enter or copy/paste full DESTINATION FOLDER path:
echo Verify: Robocopy FROM %frompath% TO %topath%
echo Is that OK?
:YN
set /P c=(Type Y or N then hit Enter.)
if /I “%c%” EQU “Y” goto :yup
if /I “%c%” EQU “N” goto :nope
goto :YN
:nope
echo Not OK, so ending now.
goto :end
:yup
echo OK, running your Robocopy command now…
::Replace this entire line (including the :: at the beginning) with your one-line robocopy command
:end
pause
If you prefer to do it in PowerShell, by all means, have at it! (To me, PowerShell is way too much complexity for such a simple task.) But if you’re a PowerShell maven and you’d like to share your Roboform-automation code via this site, great! Please contact me via the CONTACT link at the top of the page, and I’ll post it here, with full attribution to you.
Wrapping up: If you simply want a working copy of Replicator, you now know where to get it (karenware.com). But if you’d like to use Windows’ fast, built-in, always-available Robocopy instead, you now have the templates to get you started!
Permalink: https://wp.me/paaiox-3A
(Ask your question/Contact Fred via the CONTACT link at the top of the page)
This was a really helpful article. Binfer is another great way to exchange files and sync devices. The link is https://www.binfer.com/products/sync
How about a sample for either/both templates for cloning an entire win10 HDD\ to an SSD ?? Thanks