The BootLIST

Welcome to the 5th edition of The BootLIST.

This is a SPECIAL EDITION featuring Kan Yabumoto, Author of XXCOPY.

########################################
Introduction

************************************
What is XXCOPY really all about?
************************************

By Kan Yabumoto tech@xxcopy.com 2002-02-07

Hello, Everyone. My name is Kan Yabumoto. I'm the author of the XXCOPY software. It is a great honor to be invited to this new exciting newsletter for an article. The subject is of course, XXCOPY. Its home page is

Rather than boring you all to the death by parading the myriad of features in XXCOPY, I would like to pick a few topics and give you my side of the story.

I've been using a lot of software products just like you, and I seldom come into contact with the author of the program. So, let me make myself available to you and discuss the product's history, the primary goal, and the near-term and long-term road map of XXCOPY development. Also, I would like to brag about a feature in XXCOPY that I'm most proud of.

After all, XXCOPY is just a file-copy utility. In order for XXCOPY to stand out from the crowd in the competition, it has to offer to the user something unique. We wanted to make XXCOPY irresistible to those who give it a try.

Many of you must have come to know XXCOPY for a particular purpose. I hope you found it useful for what you had in mind. But, chances are, you are still wondering why XXCOPY is so often talked about in various newsgroups lately.

From my point of view, many favorable comments about XXCOPY by others are often picking just one of the many virtues of XXCOPY. By observing the newsgroups at the sideline, I often find myself frustrated by the fact people talk about the relatively "minor" features of the tool. The real power of XXCOPY seems to be largely untapped by most users.

So, here I am, trying to de-mystify the tool and set the record straight. What is XXCOPY all about?

########################################
1. Brief History Of XXCOPY

XXCOPY debuted in the Internet as a freeware in November, 1999. But it's predecessor, DCOPY (and DCOPY32) was born around 1994. It has been a bundled utility program in our DATMAN package (DATMAN makes a tape drive behave like a disk. Visit http://www.datman.com for details). Its modest goal was to circumvent the problem of Microsoft's XCOPY which often got stuck in a script (batch file) when files are transferred to a NetWare file server for backup.

The file-sharing problem in a multi-tasking and networking environment has always been a common headache. The problem will be with us forever. When a file is exclusively opened by one program, the next program which attempts to access it has no choice but to let the first program be done with it. The trouble with Microsoft's XCOPY was that it gave the user the infamous "R(etry) or A(bort)" choice --- you either try it again which usually gets you nowhere, or abort the whole backup operation. But worst of all, the situation makes the batch script sit there idle (Microsoft later added the much-needed third, F(ail) option in the prompt along with the /C switch to prevent a failed copy from ruining the rest of the backup operation). DCOPY had that capability long before Microsoft corrected its XCOPY.

We always listen to the users. Later, we found ourselves adding many more backup-related features to DCOPY. But, after many more switches were added, one key principle remains the same: the latest XXCOPY's command line syntax is still compatible with Microsoft's XCOPY.

When we released XXCOPY to the general public in late 1999, our motivation was to provide something for free in the Internet to attract more traffic to our main DATMAN.COM web site. We gave it the new name, XXCOPY which correctly characterizes the nature of the product; the behavior stays very close to that of XCOPY. This makes the user's first experience with XXCOPY relatively painless, provided that he already knows Microsoft's XCOPY fairly well.

########################################
2. XXCOPY For Cloning The Win9x System Disk.

Soon after the XXCOPY freeware version became more widely circulated, a few people discovered its usefulness in duplicating the Windows 9x system disk. I'm not sure exactly who mentioned this usage first. At various newsgroups, XXCOPY was recommended to others for disk cloning purposes. At that time, many people were using Microsoft's XCOPY for this. We still see plenty of users run the following command for this purpose.

XCOPY C:\ D:\ /h /e /k /r /y

Being compatible with XCOPY, XXCOPY can be run using exactly the same combination of switches

XXCOPY C:\ D:\ /h /e /k /r /y

But, I was recommending an improved variation,

XXCOPY C:\ D:\ /ks /h /e /r /q /y /bi /zy

In order to help memorize this long combination, I came up with the following mnemonic for it; "Kiss Her Quick, Yes, But I'm busy." But, it requires photographic memory. So, I devised a shortcut switch in XXCOPY that is a direct substitution of the longer combination. That is how the /CLONE switch came to life.

Now, the command is much easier to remember.

XXCOPY C:\ D:\ /CLONE

Of course, we could have advocated a batch file to achieve the similar goal. But, this shortest form as a built-in switch was an instant success. Then, I wrote a special manual with step-by-step instructions for this operation.

If you help others by mentioning the /CLONE switch for duplicating the Win9x system disk, I hope you also add this pointer in your advice so that the new user will not have to wonder "What's next?" after he runs the /CLONE operation and still does not have a bootable disk. The MBR, the boot sectors, etc. must be properly initialized in order to have a bootable system disk.

Now, you know why we did not develop XXCOPY for disk clone operations. Nor was the very /CLONE operation specifically designed for cloning! It is simply a natural consequence of making a versatile tool for many purposes. The /CLONE switch remains a mere convenience feature in XXCOPY to ease the typing and memorizing.

########################################
3. Ghost, DriveImage And XXCOPY

The /CLONE switch made XXCOPY a free alternative to Norton Ghost and PowerQuest's DriveImage. I have great respect for both of these products. In newsgroups, we find so many people asking the same question over and over again. Here's a typical thread:

Q: I just bought a 20GB hard disk and I want to replace my Win98 system disk with the new one. Tell me how?

A: Most hard disks come with a utility to do just that. Otherwise, buy Ghost or DriveImage, or try freeware XXCOPY.

Some people adamantly suggest Norton Ghost. Not only do they recommend it for the one-time system cloning operation, they also advocate the use of Ghost for daily/weekly backup. That is fine. But, many say they chose XXCOPY and they are happy with it. After all, when you buy a $90 disk, would you spend an additional$50 just for this one-time operation?

---------------------------------------------------------
I hear the Ghost software that one bought two years ago
cannot do well in cloning the XP disk. Thus, the \$50
price tag is not a one-time investment for a good tool,
but rather a recurring expense like an annual
subscription. I suspect many Ghost advocates are
professional system integrators or consultants who buy
Ghost as his tool for everyday work. But they must
not forget that they are talking to one-time users.
---------------------------------------------------------

XXCOPY works great for this purpose. It works better than the XCOPY method by not taking chances with the short filename (SFN) (see http://www.xxcopy.com/xxcopy03.htm for detail). XXCOPY preserves the SFN when files are copied using the long filename (LFN), whereas most other programs (including Microsoft's tools) neglect this aspect.

XXCOPY's /CLONE command can be used for subsequent daily backup without any change (by leaving the old disk in D: as a backup drive after the disk swap). The incremental backup will run much faster than Ghost or DriveImage for this purpose. Moreover, in a relatively rare instance of either of the disks (original or the newly cloned one) having a bad sector, a disk imaging software such as Ghost usually cannot handle the bad sector unless the two drives have bad sectors in exactly the same positions.

It is quite amazing that both approaches work. It's like traveling from New York to New Delhi, via Hawaii or via Europe. We fly to totally opposite directions at first. In the middle, we are thousands of miles apart. Yet, we arrive at the same goal.

Am I saying XXCOPY is better than Ghost or DriveImage? No. I say it is just plain silly to compare apples and oranges. But, since it continues to be a hot issue, let me briefly give my advice to the disk cloning issue once and for all.

My answer to the Win9x/ME disk clone question:

-------------------------------------------------------------
Try XXCOPY Freeware first (be sure to read the XXTB #10).
If it fails, use Ghost or DriveImage that fits your budget.
-------------------------------------------------------------

Honestly, I shouldn't waste my energy on this small issue. XXCOPY has never been designed for and will never be made for disk imaging. It happens to work great when one wants to make a bootable system disk for Win9x/ME.

As of this writing, we do not have a similar recipe for making a bootable WinNT/2K/XP disk using only XXCOPY.

########################################
4. XXCOPY - More Than A One-Trick-Pony

When you have done your first /CLONE job with XXCOPY and you are happy with it, XXCOPY is not finished yet. It has just demonstrated its versatility in one of the many things that it is capable of. Let me emphasize it:

XXCOPY is not a one-trick-pony, not just for /CLONE.

When you run XXCOPY /HELP for the first time to obtain the help text, the sheer volume will probably overwhelm you. The good news is, you need not learn them all at once. Take time. Learn one feature at a time and use it repeatedly and explore some more.

Here is a non-exhaustive list of what those switches do.

a. select files by filetime, size, attributes, etc.

b. specify exclusion pattern (files and directories)
specify inclusion pattern (filename patterns only)

c. create log file and name-list file.

d. modify behaviors of all the above and much more...

In essence, the great majority of file management activities you want to carry out are probably supported by XXCOPY already. But you need to find out which switch to use and that can be difficult. My favorite reference page for that is:

This page deliberately avoids the alphabetical order; instead, the listing is ordered by the functionality of the switches. It is even more useful as an overview of all the available switches using the functional classification in mastering the galaxy of XXCOPY command switches. I highly recommend it.

Let me conclude this section with some more examples:

xxcopy \src\ \dst\ /da#10 // files modified within 10 days
xxcopy \src\ \dst\ /da:2002-2 // files modified after Feb 2002.
xxcopy \src\ \dst\ /sz:-100m // files up to 100 MB long
xxcopy \src\ \dst\ /ats // files with system attribute
xxcopy \src\ \dst\ /x*.tmp // exclude files that end by .TMP

Rather than showing all of the 200+ switches, I let your educated guess extend this short list to what kind of cases the other 200+ switches might do for you.

########################################
5. The Feature In XXCOPY That I'm Most Proud Of

If there is a defining feature in XXCOPY, this is it. The feature called "Wild-Wildcard" is the crown jewel of the program. It opens up new ways to look at the files and directories. Forgive my complacency here, but I want you to feel my enthusiasm for it and learn the feature.

From the user's point of view, the Wild-wildcard feature allows you to place as many wildcard characters and at any position in the source specifier. It's quite elegant.

Programming this feature was a little hard. Then, handling the exclusion items with wildcards made it more difficult. Now, to implement all this with a great execution efficiency, was the most challenging experience in the entire project. But, inventing this type of unique and powerful feature brings joy to the programming profession.

Here's an example of that.

xxcopy c:\micro*\*\cache*\*\*.jpg d:\myimages\

If you know what "*" does to a filespec at the end of a fully spelled-out path, you can reasonably guess what it does when it appears in the middle of a multi-level pathspec.

If you are confused and prefer not to know it, that is fine. You can use XXCOPY without knowing anything about this feature. On the other hand, if you are intrigued by it, let me briefly explain. It's a liberal application of wildcards ( * and ?).

One way to look at this is to view the feature as an extension of the /S switch. See the difference of the following lines:

xxcopy c:\mydir\myfile.* // one directory level
xxcopy c:\mydir\myfile.* /s // multi-level subdirectories

Most XCOPY users are quite familiar with the /S switch that allows the file pattern (myfile.*) to appear anywhere inside the subdirectories under the c:\mydir\ directory. The file may appear immediately inside the c:\mydir\ directory or it may be in second, third or any level of subdirectory.

Now, we introduce a new notation to denote the effect of /S:

xxcopy c:\mydir\myfile.* /s // multi-level subdirs
xxcopy c:\mydir\*\myfile.* // equivalent to the above

When it has the single-star (..\*\..) sequence, it signifies that the item(s) at the right hand side can be at any level of subdirectory. The two command lines behave exactly the same.

Once we agree upon how the sequence works when it is placed immediately left to the filename pattern, we can shift the occurrence of the single-star sequence to any other place. In short, this notation lets you apply the mechanics of /S on the subdirectory level other than the lowest (rightmost) level.

xxcopy c:\mydir\*\xyz\myfile.* // the /S switch can't do this

Another innovation in the wild-wildcard feature is to allow wildcards (both * and ?) to appear for any number of times.

xxcopy c:\*\*dir\*\xyz?\*\myfile.* // can really go wild.

So, let us wrap up this section with one more example:

xxcopy c:\abc\*\xyz\*.jpg

The xyz subdirectory can be anywhere under c:\abc;

c:\abc\xyz\john.jpg
c:\abc\def\xyz\paul.jpg
c:\abc\def\ghi\xyz\john.jpg

All the above are selected with c:\abc\*\xyz\*.jpg

########################################
6. A One-Liner Batch File For You

Who in their right mind need to go wild with the Wild-Wildcard?

You seldom need to go very wild in filespec. But, the ultimate flexibility in XXCOPY becomes very handy when you look for something in your disk. Since you don't want to remember the XXCOPY switches that work best for file searches, a batch file really makes your life easier.

Here is my favorite batch file:

where.bat
-----------------------------------------------------
xxcopy /lzdl/s/h %1 %2 %3 %4 %5 %6 %7 %8 %9
-----------------------------------------------------

It is a file-finder script. It often works best with a pathname that starts with the root (but need not to). With this batch file, I sometimes go quite wild. You may add any "adjective" using the xxcopy switches

examples:

where \windows\*\cache*\ // list all in cache dirs
where \*\temp*\ /sz:0 // zero-byte files in temp dirs
where \ /da#10m // made in the past 10 min
where \mydir\ \ref\ /u // files common in both dirs

This simple batch script exemplifies the flexibility of XXCOPY by allowing many ways to select files. For instance, the fourth example above shows off some nifty combination.

########################################
7. XXCOPY Road Map, Near-term And Long Term

Lately, I started to realize a disturbing fact in XXCOPY's user community. I enjoy relating my experience in early days of CP/M, MS-DOS and so on with XXCOPY users who reminisce their stories with me. But I suspect that the average age of the XXCOPY users is higher than that of the whole computer professionals (I'm afraid the same is true to BootDisk.Com)!

We often hear from people at IT departments' supervising positions saying their young system administrators prefer clicking the mouse button a few thousand times to taking the time and edit a five-line batch file. Sadly, it may be true.

If we continue the command line-only design, XXCOPY will repeat the demise of the dinosaurs. We have no illusion. So, Graphical User Interface (GUI) is the future of XXCOPY.

In the near term, a simplistic GUI-based program will satisfy novice users' need for XXCOPY. Since it will omit most advanced features, this product can be finished first.

We also want to introduce a GUI application which helps the user find the right switches for file management operations. Since it presents nearly all XXCOPY switches in a well- organized fashion, it takes longer to develop; hence, it will be released at a later date.

In the past, we have been contacted by a few individuals who wanted to develop a GUI-based front end program which runs side by side with the XXCOPY program. We welcome initiatives from interested parties who might work with us for a loose, non-exclusive partnership.

########################################
8. Conclusion For Now

In conclusion, I tried to make XXCOPY a worthwhile program for nearly everybody who is eager to learn its rich set of file management operations. My publicly stated goal for this program is: One day, XXCOPY will be called:

The Undisputed King of the File Management Utilities.

Lastly, I hope this will not be my last time in this newsletter. If you have questions, please send me your comments to bootdisk@xxcopy.com. I will respond to you in my next appearance here (whatever name you use in the Email (but not your Email address) will appear in it).

Alternatively, you may post your question to the XXCOPY discussion group, or join the group and/or subscribe the Email delivery of the messages.

To post your message, send Email to: xxcopy@yahoogroups.com To subscribe the messages: xxcopy-subscribe@yahoogroups.com

It is a Yahoo-sponsored group (with some ads), and a great place to meet other XXCOPY users who are quite eager to help newbies with their experience. I will also post my message there when a clarification is needed. It is also the place where announcements about XXCOPY are made. For example, a new XXCOPY beta version is always announced in the discussion group, first. You can post your suggestion for a new feature there. It's like a Usenet newsgroup specialized in XXCOPY except responses usually arrive much more quickly. The archived messages (> 1500) are a gold mine to retrieve past messages using the keyword search.

So, please join the "XXCOPY Revolution".

Kan Yabumoto
Naperville, Illinois.

+++++++++++++++++++++++++++++++++++++++++++++++++