XXCopy is a command-line tool for copying, backing up and synchronising files, cloning drives and more. A supercharged version of the standard XCOPY command and Microsoft's RoboCopy, it's more difficult to use than a graphical program, but also far more flexible, and easier to automate via your own scripts.
The program is XCOPY-compatible, so if you've ever used XCOPY then you'll be at home right away. To copy folders and changed files from one folder to another, for example, you'd just use something like this:
xcopy C:\ThisFolder Z:\Backup /D /E
But of course XXCopy has many extras.
Extensive date/ time filters mean you can copy older or newer files; anything that was changed on, before or after a given date; or anything which was changed on, before or after <n> days ago. These comparisons can be set to use the last write, last access or creation times, and there are various time zone options, too.
XXCopy can remove files according to various rules, perhaps deleting a source file after it's copied, or a destination file which isn't present in the source (if you're creating your own file sync routine).
The /JV switch allows versioning. When a file changes, it won't just be copied over the old one: you can retain multiple versions (as many as you need).
Various "flattening" options can take all the files in a folder tree and copy them to a single folder. The files are combined with their original folder names so you can see where they came from, and there are even some rebuild switches to recreate the original tree from a flattened folder.
Quota support means XXCopy can stop its operations once a quota is met (a file count or byte count has been reached, disk free space drops below a certain amount).
There's strong support for all kinds of low-level file system details (short file names, NTFS security information, reparse points, hard links and more).
And although this power means there are a lot of command line switches (more than 230), XXCopy does provide a few aliases to simplify its use. XXCOPY /BACKUP represents XXCOPY /KS/H/E/R/Q/Y/BI/ZE/oD0, while XXCOPY /CLONE represents XXCOPY /KS/H/E/R/Q/Y/BI/ZY/ZE/oD0.