[ Back to Table of Contents ] [ << ] [ >> ]


From:    Kan Yabumoto           tech@xxcopy.com
To:      XXCOPY user
Subject: XXCOPY Frequent Asked Questions (FAQ)
Date:    2012-05-30
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.

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
     XXCOPY available?

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
     some volume?

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
     following directory:


     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
     list file?

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
     like XXXXXX~1.XXX.

       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
     XXTB #10.

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

© Copyright 2016 Pixelab All rights reserved.

[ XXCOPY Home ] [ Table of Contents ] [ << ] [ >> ]

Join the XXCOPY group