Jump back to the top page Jump back to the top page
 

 Home
 What is XXCOPY ?
 Products
 Downloads
 F A Q 
 Order
 Support
 About Us (Pixelab) 
On-Line Manual 
             . . .  
XXTB #011 
XXTB #012 
XXTB #013 
XXTB #014 
XXTB #015 
             . . .  


XXCOPY
Version
3.11.1


Released
2012-01-08
©2011 Copyright
Pixelab, Inc.

 All rights reserved  
    [ Table of Contents ] [ << ] [ Show as Detached ] [ >> ]

    XXCOPY TECHNICAL BULLETIN #013

    From:    Kan Yabumoto           tech@xxcopy.com
    To:      XXCOPY user
    Subject: XXCOPY Frequent Asked Questions (FAQ)
    Date:    2001-09-01
    ===============================================================================
     
    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
         programs.
    
    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 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?
    
    A5:  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/N/A/R/S)?
    
         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.
    
     
    Q6:  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?
    
    A6:  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.  
    
     
    Q7:  Is there a way to perform an incremental backup but ignore the
         file time.  That is, I want to select files of different size.
    
    A7:  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.
    
     
    Q8:  I have seen variations for the home page URL of XXCOPY.
         Which is the real home page?
    
    A8:  The current official home page URL for XXCOPY is
    
            http://www.xxcopy.com/
    
         Our corporate home page is
    
            http://www.pixelab.com/
    
         Now, all of the freeware download files are stored at the
         following directory:
    
            http://www.pixelab.com/download/
    
         In the past, we have also used the following addresses  
    
            http://www.xxcopy.com/xxcopy/
            http://www.datman.com/xxcopy/
    
         Now, we encourage you to use the shorter form.
    
    
         * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
    
         We also run a beta test for which we estabished a full web site:
    
            http://www.xxcopy.com/betatest/
    
         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.
    
     
    Q9:  I can't back up the Program File directory using XXCOPY.  Why?
    
    A9:  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"
    
     
    Q10: 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
    
    A10: 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.
    
     
    Q11: 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?
    
    
    A11: 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.
    
     
    Q12:  But, /Fo always overwrites the existing list file.  Is there
         a switch which allows me to append the list to an existing
         list file?
    
    A12:  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
             ...
    
     
    Q13: When I run a backup using XXCOPY (XXCOPY src dst  /CLONE), on
         some file, I get a "data mismatch" error message.  What does it
         mean?
    
    A13: 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.
    
     
    Q14: 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.
    
    A14: 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
    
     
    Q15: 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?
    
    A15: 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.
    
     
    Q16: I understand XXCOPY can duplicate the system disk for Win9x/ME.
         What about the WinNT or Win2000?
    
    A16: No.  Not at this moment.  We have not come up with a sure way to
         make a bootable WinNT or Win2000 disk using XXCOPY and standard
         set of tools.  We have been asked by many users why not.
    
         Let me briefly explain what is involved in making a bootable disk. 
         The initial step in booting a Windows system is to have BIOS access
         the Master Boot Record (MBR, the first sector of the first drive),
         which determines the partition information and supplies the initial
         bootstrap program.  This very small program is then copied into the
         main memory and the processor will start executing the program.
         Normally, the MBR data is initialized by FDISK (or other specialized
         toos).  XXCOPY does not access the MBR.  That is why in the article,
         we show you when and how to use FDISK.  In the case of WinNT/2000/XP,
         the lengthy OS installation procedure writes the MBR with its own
         boot program.  So, the MBR certainly is one factor.
    
         Secondly, a handful of key files (such as \WinNT\system32\security) 
         are locked by the system while WinNT/2000/XP is running.  Since the
         system refuses to share these files with any other application,
         XXCOPY can never access these files (about a dozen or so). In the
         case of Win9x, most system files in the \Windows directory are
         accessible in read mode, and XXCOPY has no problem accessing nearly
         all of them from a Win9x session.  It is entirely possible that one
         can write an elaborate multi-step batch script to access those key
         files from DOS.  We just have not done our homework on this subject.
    
     
    Q17: 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?
    
    A17: 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. 
    
     
    Q18: 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?
    
    A18: 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
         value.
    
    
    
    
    [ Table of Contents ] [ << ] [ Show as Detached ] [ >> ]