Better Robocopy GUI, Get the Best of Both Worlds

by Zijian Huang

Robocopy is very good for making simple backup of important files, as well as massive copying of files of different scenarios.

You have reasons of loving command line, and loving GUI.

I would assume you already love Robocopy, and might also use Robocopy GUI at least once.

I am a lazy person, while I love command line, I don't remember command line arguments. While Robocopy GUI has released some of my pains, the product still needs some face lifts to please our lazy and smart computer literates. We need Better Robocopy GUI to tame the awesome powers of Robocopy.

Overview

The program was developed based on my preference of UI design:
  1. Most if not all Screen elements are visible in one screen without much tabbing on tab sheets or navigating multiple levels of windows, as long as the layout of the elements is not too busy.
  2. Hints on command line arguments must come on handy, as I don't remember the arguments.
The GUI components representing the command line arguments are presented in a property grid which maximizes the use of the vertical resolution of the screen. And an text editor windows maximizing the horizontal resolution of the screen is for editing command.

You may construct a command line through modifying properties in the property grid, and you can edit the text of command line in the text editor window. And the changes you made in the editor window may be reflected back to the property grid. When you select a property in the property grid, or an argument in the text editor window, you will see the hint about the argument.

Some options are just combinations of other options. The program will assist minimizing such redundant options.

Surely you still need a standalone text editor like Notepad for editing scripts, while this Better Robocopy GUI should provide some helps for speeding up the drafting and testing of your scripts.

Limitations

Better Robocopy GUI excludes the Job Options of Robocopy on purpose: if you use job files, you don't need GUI to construct options of Robocopy.

Robocopy GUI from Microsoft includes a 35-page document "Robocopy.exe Robust File Copy Utility Version XP010". This document is helpful for studying in-depth uses of Robocopy. As this document of Microsoft is copyrighted, I can not redistribute it. However, while the hints of Better Robocopy GUI are basically the replicates of Robocopy command line help, this is a fair use.

Requirements:

Installation

The program comes with a single exe file which is packaged in a zip file primarily distributed at Fonlow.com as well as CodePlex.com. You may extract and copy the exe file to where ever you like.

Remark: You may be amazed that BetterRobocopyGUI.exe is so small, just around 58 KB while RobocopyGW.exe of Microsoft Robocopy GUI is about 212 KB. Technically, BetterRobocopyGUI dynamically generate GUI elements at runtime, while RobocopyGW has most GUI elements defined at design time, which were built into the exe file.

Source Codes

The program was coded using C# of Visual Studio 2008, on .NET Framework 2. The package is hosted at Codeplex.com.

License

SOFTWARE END-USER LICENSE AGREEMENT

Better Robocopy GUI is distributed as FREEWARE, with source codes available

Copyright  ©  2009-2010
 Zijian Huang, All Rights Reserved.

This software is provided "as-is," without any express or implied warranty. In no event shall the author be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for individual or commercial purposes, provided that the following conditions are met:

1. All redistributions of the Application files must retain all copyright notices that are currently in place, and this list of conditions without modification.

2. All redistributions must retain all occurrences of the above copyright notice and web site addresses that are currently in place (for example, in the About boxes).

3. The origin of this software must not be misrepresented; you must not claim that you wrote the original software.

4. You may distribute Better Robocopy GUI with commercial 3rd. part software, but you can't charge for it.

After-mark

The program and the codes are simple, and I would kept that way.

If you are studying C# and .NET, you may find some typical use cases of some distinguish .NET technologies:

You are very welcome to give comments and advices upon bugs and improvements.

Hints

I have a laptop which goes to sleep often, and a Windows server that runs 24x7. For important files in my laptop, I would make a mirror backup every day to the Windows server. I put all Robocopy commands into a bat file which will be launched by a task in Windows Task Scheduler. The task will run every 2 am, and if the laptop is sleeping, the task will wake it up.

From time to time, say, weekly, I would go to the Windows server, run similar Robocopy commands in a bat file, to copy the mirror backup into another mirror backup in a removable drive, which I would place in another geographic location.

Here's an example:
@echo =========================================== >> xcopysync.log
date /T >> xcopysync.log
time /T >> xcopysync.log
net use \\MyServer\bigd yzxlszy /user:zijian
@echo ------------------------------------------- >> xcopysync.log
if not exist \\MyServer\bigd\Backup goto end

robocopy D:\DelphiProjects \\MyServer\BIGD\Backup\Laptop\DelphiProjects /XF *.dcu *.dcuil *.exe *.bak *.~* /MIR /R:3 /W:10 >> xcopysync.log 2>&1
robocopy D:\delphicomponents \\MyServer\BIGD\Backup\Laptop\delphicomponents /XF *.dcu *.dcuil *.exe *.bak *.~* /MIR /R:3 /W:10 >> xcopysync.log 2>&1
robocopy D:\VSProjects \\MyServer\BIGD\Backup\Laptop\VSProjects /XF *.bak *.~* /XD bin obj /MIR /R:3 /W:10 >> xcopysync.log 2>&1
robocopy D:\DotNetcomponents \\MyServer\BIGD\Backup\Laptop\DotNetcomponents /XF *.bak *.~* /XD bin obj /MIR /R:3 /W:10 >> xcopysync.log 2>&1

:end

References