In the beginning, there was the COPY command, and it was good … at least, when we were all still dealing with 8.3 filenames and directory trees that were no more than one level deep. COPY is still useful for quick-and-dirty single-item copying of files from the command line. For more robust work—multiple directories, preservation of extended attributes—there is the XCOPY command. But now even XCOPY is starting to show its limitations, and so a third command-line file-copying utility has risen to prominence: Robocopy.
Originally (and still) available as part of the Windows Resource Kit, Robocopy was designed to copy large numbers of files and folders while preserving NTFS extended attributes such as access control lists and alternate data streams. It was also designed to withstand unreliable network conditions or other possible interruptions of service—e.g., for copying files to drives mapped across WAN links or via wireless networks.
That being said, Robocopy still hasn't gained as much ground as it might have. This could be because it's a command-line tool, and whatever the advantages of a command-line tool, there are always going to be plenty of people who want to get their hands on the program now without having to learn the switch syntax.
(Also, Robocopy is now a standard-issue item with Windows Vista, meaning it's all the easier to get hold of and work with. For this reason, it deserves to gain that much more ground over XCOPY.)
Derk Benish, systems engineer in Microsoft's MSN Search Group, wanted to do something about this, so he wrote a simple GUI for Robocopy. The GUI is divided into six tabs, each dealing with one aspect of the Robocopy command set:
- Path allows you to set the source and target paths for the copy operation, or use the
standard Windows folder-picker to select them manually. The "Map Drive?" box lets you map to a
folder on a remote server if needed.
- Copy Options lets you set all the needed switches for the copy operation. If you don't
know what each switch does, hover your mouse over them for an explanation.
- Drive Mapping allows you to provide a target server name, username, password and domain
if you're using the drive-mapping option in the Path tab.
- Filters defines any file-filtering operations (again, as described by the program's
command switches). Hover your mouse over any of the options for an explanation.
- Logging lets you enable any logging options for Robocopy.
- Monitoring enables real-time monitoring for the copy operation.
Lastly, you can save the configuration to a script that can be reused, so the GUI doesn't create a dependency on the GUI in order to make Robocopy functional. You can use the GUI to train yourself in how it works, and then wean yourself off it over time.
About the author:
Serdar Yegulalp is editor of the Windows Insight, (formerly the Windows Power Users Newsletter), a blog site devoted to hints, tips, tricks and news for users and administrators of Windows NT, Windows 2000, Windows XP, Windows Server 2003 and Vista. He has more than 12 years of Windows experience under his belt, and contributes regularly to SearchWinComputing.com and SearchSQLServer.com.
This was first published in March 2007