From: Kan Yabumoto firstname.lastname@example.org
To: XXCOPY user
Subject: XXCOPY Frequent Asked Questions (FAQ)
Q0: Can I do xxxxxxxxxxx with XXCOPY?
(Fill in xxxxxxxxxxx with your own words)
A0: The most likely answer to the question is YES. XXCOPY can do
most common file management jobs quite nicely. But, as the
number of the XXCOPY switches grows, it is getting harder and
harder to find the right command line argument for a given job.
The recent addition of a few technical bulletins should help.
for Command Line Syntax XXTB #25
for Command Reference Alphabetic Listing XXTB #26
for Command Reference Functional Classification XXTB #27
for The Wild-Wildcard Source Specifier XXTB #28
Especially, the Functional Classification article, XXTB #27
seems to be the easiest way to see the overall picture.
If your company has an urgent need for a file management job whose
requirements are mostly met by XXCOPY but not exactly, and you wish
to have an XXCOPY with a minor customization, please consult us.
We may provide solutions to your need at reasonable time/price.
Q1: What is the difference between XXCOPY, XCOPY, and other similar
A1: Let us list the utility programs which are related one another.
XXCOPY.EXE The logical extension to XCOPY - most powerful.
XCOPY.EXE Microsoft's command-line based copy utility
COPY Internal command to COMMAND.COM (Microsoft)
XCOPY32.EXE XCOPY's Win-32 program which XCOPY runs when
invoked inside Win9x/ME/NT/2K.
XXCOPY16.EXE XXCOPY's predecessor. written for 16-bit (real mode)
environments such as DOS. Supports most but not
all of XXCOPY's switches.
ROBOCOPY.EXE Microsoft's version of an extended XCOPY utility.
It is bundled in Windows NT/2000/XP Resource Kit.
ROBOCOPY runs on WinNT or Win2000, not DOS nor Win9X.
DCOPY32.EXE Essentially the same as XXCOPY.EXE. It is bundled
with Pixelab's DATMAN-99 tape control software.
DCOPY.EXE Essentially the same as XXCOPY16.EXE. It is bundled
with Pixelab's DATMAN-DOS tape control software.
In short, XXCOPY and XXCOPY16 are Pixelab's products which
extend the features of XCOPY32 and XCOPY respectively.
Q2: I need to copy the top level of a directory structure only.
I want to copy the user home directory structure from one server
to another without copying any sub dirs or files. I have tried
the /T switch but it seems to copy the sub dirs.
A2: Among all switches, the feature to go deep into subdirectories
is controlled by /S (for subdirectory) and /E (for subdirectory-
even-if-it's-empty). Therefore, if you don't use /S or /E in
the switches, it's OK. However, these switches are also
incorporated in a few other combined switches such as /BU
(equivalent to /R/I/BI/Q/C/H/E/V/Y) and /CLONE (equivalent to
/KS/H/E/R/Q/Y/BI/ZY) which makes it tricky.
The easiest way to avoid the inclusion of /S or /E in such hidden
cases is to explicitly cancel such hidden inclusion by adding
/S0 the end of your switches. That is, you can combine with any
switches and put the /S0 switch to the right which will be
evaluated last and therefore override any earlier inclusion.
XXCOPY c:\mysource c:\mydest /CLONE /S0
Q3: I want to clone source to destination but only files with certain
extension(s). When I use XXCOPY c:\src\*.ext d:\dest /CLONE
it also deletes files with different extension at destination.
I cannot figure out which switches to use.
A3: As explained in A2 above, the /CLONE switch is a shortcut for a
combination of switches. In this particular case, the /ZY switch
is responsible for the file deletion. As the name implies,
the CLONE operation is to create a destination directory which
resembles to the source directory as closely as possible. That
includes the removal of extra directory and files that should not
be there. So, to retain all the component switches of /CLONE
except the /ZY part, just add the cancelling switch (/Z0) to the
right hand side. That is /CLONE /Z0 will do the job.
When you glance over the set of switches that are supported by
XXCOPY, you will find a cancelling switch for nearly every switch
(which usually ends with a zero (0) at the end). The cancelling
switches are convenient to reverse the effect of a long combination
of switches which has been set earlier (to the left hand side).
Q4: When I use the Win9x boot diskette, I cannot use XXCOPY since
it is the 16-bit (essentially a DOS) environment. Although I
can use XXCOPY16, it does not use any long filename. How can
I copy directories in DOS (real mode) and restore long names.
A4: It is true that there is no one-step solution to deal with the
long filename. But, this is what we recommend.
1. Copy files using any of the 16-bit utilities you have.
This will give you many files and directories with funny
names (e.g., \PROGRA~1). That is fine as the fist step.
We suggest the use of XXCOPY16, simply because it is the
most versatile utility with lots of options. If you want to
include hidden files and also to preserve file attributes,
we suggest XXCOPY16.
XXCOPY16 c:\mydir d:\mydir /KS /H /E /R
2. Once you are in Win32 (Win9x/ME/NT/2K), run XXCOPY with the
special file renaming switch as follows
XXCOPY c:\mydir d:\mydir /NL /E
In most cases, you probably want to add the /E switch to
handle all files and subdirectories inside.
Q5: When I try to install the newly-downloaded 32-bit version, the
following errorr message pops up on my screen.
xxcopy.exe is not a valid Win32 application.
A5: The error message generated by the operating system is misleading.
Recent release versions of XXCOPY (v.3.09.0 or newer) are created
with the most recent development tool from Microsoft (Visual
Studio 2010) that expects some obscure Win32 DLL functions that are
not provided Windows 2000 or NT4.
If you wish to use XXCOPY on Windows 2000 or NT4, you need to
acquire XXCOPY v.3.08.0.
If your Windows is even older (i.g., Windows 95/98/ME), please
acquire XXCOPY v.2.96.7.
For real mode (DOS) operation, please download XXCOPY16 v.2.93.1.
Q6: My computer is very old (Windows 2000) for which I have problem
installing the current version of XXCOPY. Is an old version of
A6: The following legacy versions are available for Test Drive for
which a paid license is available (we no longer provide freeware
for old versions).
For Windows 2000 or NT4, sign up for a test drive XXCOPY v.3.08.0.
For Windows 95/98/ME, sign up for a test drive XXCOPY v.2.96.7.
For 16-bit (real mode, DOS) operations, download XXCOPY16 v.2.93.1.
Q7: When I use the /RS switch to delete a directory, it always shows
a prompt "Dir (Y/N/A/R/S)? How can I get rid of the prompt inside
a batch file. Also, what are the meaning of the prompt?
A7: The Remove switch group has additional level of confirmation
prompt due to the deadly consequences. The prompt is controlled
by the /PD (Prompt-on-Directory) and /PD0 (No Prompt-on-Directory)
switches. It appears before a directory is to be processed.
Rather than having All-or-Nothing control, it provide the R and S
responses which gives you Partial-Yes options.
Y for Yes (Yes, process the current directory for removal)
N for No (No, skip the current directory and go to the next one)
A for Yes for All remaining directories (suppresses subsequent prompts)
R for Yes for the current and Remaining siblings and its subdirectories.
S for Yes for the current and its subdirectories.
Q8: I try to run a server backup using XXCOPY's incremental backup
switch (/BI). It works well with local drives. But when I
try /BI from one volume to another, sometimes nearly half of the
files always get copied even though I know most of them have never
been changed since the last backup. Why /BI does not work on
A8: Add the /FF (Fuzzy Filetime) switch in such cases. With the
switch, XXCOPY considers two timestamps the same if they are
within a pre-determined number of seconds (/FF is the same
as /FF2 --- for plus/minus 2 seconds). In most cases, the
default setting of plus/minus 2 seconds works well.
Here is why...
The /BI operation compares the file size and time stamp between
the file in the source directory and in the destination. Due to
different file time format used in various file systems, the time
stamp on a file gets truncated, resulting in a different file time
after a copy. When such files are compared against their
counterparts in the source directory, the file times do not match.
This is most commonly experienced when you copy files from an
NTFS volume to FAT (both FAT16 and FAT32) volume. Similarly,
FAT and Unix/Linux file system has file date incompatibilities.
File system Time Resolution (Granularity)
FAT12 2 sec
FAT16 2 sec
FAT32 2 sec
NTFS 100 nsec
Unix/Linux 1 sec
Whenever you run XXCOPY operation which involves a file date
comparison (e.g., /BI, /BX) across different file systems,
use the /FF switch.
Q9: Is there a way to perform an incremental backup but ignore the
file time. That is, I want to select files of different size.
A9: Yes, the /BZ switch is for you. You can choose a backup scheme
from the following variations.
/BI Backs up incrementally, different (by time/size) files only.
/BB Backs up brand new files only (does not overwrite existing ones).
/BN Backs up newer files only (includes brand new files).
/Bo Backs up older files only (includes brand new files).
/BX Backs up different-date files (includes brand new files).
/BZ Backs up different-size files (includes brand new files).
/BS Selects exactly the same files (this is useful with /RS).
/BU Standard Backup switch (same as /r/i/bi/q/c/h/e/v/y)
/U Updates the files that already exist in destination.
Note: The /Bx switches are mutually exclusive one another,
but /U may coexist with a /Bx switch.
Q10: I have seen variations for the home page URL of XXCOPY.
Which is the real home page?
A10: The current official home page URL for XXCOPY is
Our corporate home page is
Now, all of the freeware download files are stored at the
In the past, we have also used the following addresses
Now, we encourage you to use the shorter form.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
We also run a beta test for which we estabished a full web site:
If you are looking for a feature which is not supported by the
current release version, you may try the beta test site. The
documentation files in the batatest site reflect the extended
functionality of the beta version.
Usually, a beta test version is well debugged. But, of course,
it is less mature than the current release version. Since we
pay close attention to bugs and we try to correct serious
problems as soon as they are discovered, you may estimate the
stability of a particular beta test version by the date it was
created. If you feel uneasy to run an "untested" version, wait
a few weeks. If the same beta test version is still there,
it will have gone through the scrutiny that much longer.
Q11: I can't back up the Program File directory using XXCOPY. Why?
A11: It is very likely that you are not using quotation marks around
the source directory name. XXCOPY processes the command line by
splitting the string of command line text into pieces using the
space (or tab) character as the delimiter which separates the
line into components. When you have a multi-word name such as
"Program Files", XXCOPY will see it as two components. You
must tell XXCOPY that the two words are actually just one piece
by surrounding the directory name using the double quotes (").
XXCOPY c:\Progam Files d:\dest\ // WRONG!!!
XXCOPY "C:\Program Files" d:\dest\ // CORRECT
This is not XXCOPY's idiosyncrasies. You can apply this technique
to any operation in a DOS Box. E.g., try it with DIR, CD, etc.
DIR "C:\Program Files"
CD "C:\My Documents\My Pictures"
Q12: I can't make the /Fo, /ON and even /OA to work. Here's my command
line looks like. What is wrong?
XXCOPY c:\mysrc\ c:\mydest\ /s /Fo c:\temp\mybackup.log
A12: This is a quite common problem with first time users. As stated
in the previous answer (A8), the space (and tab) character plays
a very important role in the command line. Although it may seem
hard to read, any parameter for an XXCOPY command switch (such
as /Fo which needs the filename) must follow the command switch
immediately without a space character. So, in your case, type
/Foc:\temp\mybackup.log (without space after /Fo)
Although there are many command-line programs which permit or
even require a space between the command switch and its parameter,
XXCOPY is one of those programs that does not allow a space there.
Actually, allowing an optional space between the command letter(s)
(such as /Fo) and its parameter would create undesirable ambiguity
in the command line syntax, it is best to keep it strict, albeit
a bit ugly to read without a space there.
Q13: My log list which is created by either /ON or /OA does not
include the list of files just copied. How can I list the
files which are successfully copied in the log file?
A13: The /ON/OA output was meant to be for error logging. When
you make a big backup job and save a log file, the few lines
of error will be buried in the huge list of filenames. Therefore,
it is a deliberate XXCOPY design not to dilute the log file
with voluminous success cases. If you want a list of backup log
that contains the names of the files which are copied, use the
/Fo switch which is equivalent to the console output you get
using the /F switch.
Q14: But, /Fo always overwrites the existing list file. Is there
a switch which allows me to append the list to an existing
A14: No, there is no Append equivalent in the /Fo switch. But, you
can write the following sequence in your batch file to achieve
the same goal.
xxcopy \src\ \dst\ /fonew.lst
type new.lst >> grand.lst
Q15: When I run a backup using XXCOPY (XXCOPY src dst /CLONE), on
some file, I get a "data mismatch" error message. What does it
A15: Immediately a file is copied, XXCOPY checks the size of the newly
created file in the destination directory. If the file size does
not match the source, the error message will be shown. Under
normal circumstance, this should not happen. But, in a multi-
tasking environment such as Windows, a file which was just
closed may be subjected to a modification by another process which
is not necessarily a fatal condition. XXCOPY does not interpret
the severity of such an incident. Therefore, it is up to you to
make the assessment as to the purpose of the file. In many cases,
the error condition is not very serious. Otherwise, you may turn
off *ALL* processes except XXCOPY when you clone the current volume
to another volume.
Q16: I want to obtain a list of files using XXCOPY's rich set of file
selection mechanism but without acutally causing any actions like
copying or removing files --- just a listing only. Also, I want
just a bare listing without even the file size info.
A16: XXCOPY is no longer just a file copy utility, but a general purpose
file management tool and searching and making a list of files is one
of the jobs XXCOPY is well equipped. I will show you a few examples
as the answer
XXCOPY c:\mydir\*.jpg /S /L
The searchspec has the base directory part and a template part.
/S is to include subdirectories (which usually the case)
The /L switch is the starting point. It shows file size.
XXCOPY c:\mydir\*.jpg /S /L /ZS
/ZS without the sign-on and statistics info. The bare list.
XXCOPY c:\mydir\*.jpg /S /LL /ZS
/LL gives you longname only
Actually, /Lxxxx is a general purpose list-formatter. You can add
L(ongname), S(hortname), Z(size), D(ate), T(ime), A(ttributes).
Since Longname varies in length, for best list, place L last.
Some more variations:
XXCOPY c:\mydir\*.jpg /S /ZS /LD // D(ate) L(ongname)
XXCOPY c:\mydir\*.jpg /S /ZS /LDZL // D(ate) S(ize) L(ongname)
XXCOPY c:\ /DA#0 /S /ZS /LDZL // Only the files made today
Q17: When I use XXCOPY16 in DOS and duplicate the entire C: drive to D:
using the following command, I get funny filenames in the destination
XXCOPY16 C:\ D:\ /CLONE
How come the files are not copied correctly?
A17: Although XXCOPY16.EXE supports almost all XXCOPY.EXE command switches,
the longname related features (such as the handling of files using
the long filename) cannot be supported. The limitation is not of
the XXCOPY16 program. It is the real mode (DOS) environment which
does not support the long filenames. This is exactly why Microsoft
invented the "alias" 8.3 filename in order for legacy (DOS) programs
to be able to access files created under Win9x and NT/2000/XP with a
long filename. For more information about duplicating a disk drive
under Win9x, there is another article on the subject with great detail
Q18: I understand XXCOPY can duplicate the system disk for Win9x/ME.
What about the Windows XP or Windows 7?
A18: No. Since XXCOPY accesses storage devices primarily with high-level
Win32 system API functions (at the file/directory level) rather than
low-level device I/O functions to maintain the robustness of the
program, XXCOPY cannot make the destination disk self-bootable (which
was once possible for DOS-based (Win 9X/ME) Windows).
We now offer a new product,
Q19: Is there a way to backup a directory and keep the time-stamp of
the source directory (and those of the subdirectories) so that
when I restore the directory later, the time-stamps will exhibit
the original directory-creation time?
A19: If you run XXCOPY under NT/2000/XP, newly created directories in
the destinaion will get the same timestamp. But, under Win9x/ME,
unfortunately no. As far as we know, there is no File I/O API
in the Win9x programming (or in DOS for that matter) which allows
a program (such as XXCOPY) to set or modify the time value for
a directory. We feel it is a serious omission of in the Win32
implementation. The only ways to achieve the objective are to use
some programming tricks. But, possible side effects and risk of
compromising the system integrity is too great. It is a serious
omission in API functionality when Microsoft implemented Win32
for the Win9x/ME environment.
Q20: When I right-click the icon of the XXCOPY.EXE file and examine
the version number, it is different from the one the program
shows at the banner line. Why? And, which one to believe?
A20: We have traditionally used version numbers which consist of
four digits which are grouped in to three parts like 2.60.0.
Unfortunately, the version information which can be attached
to an EXE file (to be viewed in the property sheet of the
EXE file) has a format of four digits which are always split
into four parts of single digit. We don't really like the
format and we can't do anything about it.
Besides, it is somewhat time consuming to set the property sheet
version number every time we build a beta version (which are
often made for tentative debugging purposes). To be honest,
more often than not, we forget spending time in adjusting the
property sheet section while we are concentrating on removing
bugs and making a few experiments to see a particular problem
is gone for a user's environment. The property sheet is just
a distraction as far as we are concerned.
Just disregard the version number property sheet and take
XXCOPY's banner line (which are very prominent) at its face
[ Table of Contents ]
[ Show as Detached ]
[ >> ]