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:
- 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.
- 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:
- Windows 2003/2008, XP, Vista, 7
- Microsoft .NET Framework 2.0
- Robocopy installed
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.
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:
- Reflection with TypeConverter, PropertyInfo
- PropertyGrid
- Regular Expression with Regex
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