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 #001 
XXTB #002 
XXTB #003 
XXTB #004 
XXTB #005 
             . . .  


XXCOPY
Version
3.33.3


Released
2016-10-28
©2016 Copyright
Pixelab

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

    XXCOPY TECHNICAL BULLETIN #025

    From:    Kan Yabumoto           tech@xxcopy.com
    To:      XXCOPY user
    Subject: XXCOPY Command Line Syntax
    Date:    2002-05-07 (revised)
    ===============================================================================
    
    Basic Command Parameter Syntax:
    
      XXCOPY   source   destination    (simplified syntax)
    
      In its simplest form, XXCOPY takes two parameters,
    
          from WHERE to WHERE
    
      This very intuitive command syntax has its root in the COPY command
      introduced in 1981 as a PC-DOS (MS-DOS) built-in command.
    
      The first parameter is the source specifier and the second one is
      the destination specifier.  These two parameters must be in this
      order.  As common to the COPY and XCOPY command syntax, the
      destination specifier can be omitted.  Then, by default, the
      current directory in the current drive becomes the destination.
    
      XXCOPY   source  [ destination ]
    
      By convention, an optional parameter is denoted in the syntax
      definition with a pair of square-brackets surrounding it.
      In addition, you may add command switches that starts with a
      slash (see below).
    
    
    The Command Line Delimiter:
    
      XXCOPY   source  [ destination ]  [ switches... ]
    
      These up to three (or more) parts must be separated by at least one
      blank (usually the space character but a tab may be used).  The role
      of the blank character as a separator (which is called "delimiter")
      in the command line is very important.  XXCOPY relies on the
      separating blank characters to know where the end of the source
      specifier and where is the beginning of the destination specifier.
      For this reason, if you have a source specifier (such as "My Documents")
      which has a space inside, you must enclose the whole source specifier
      by double quotes.
    
         Example:
    
           XXCOPY  "C:\My Documents\"
    
      If you omit the double quotes, like the following line,
    
           XXCOPY  C:\My Documents
    
      XXCOPY would interpret "C:\My" as the source specifier and "Documents"
      as the destination (If you have another item which you really meant
      as your destination, it would be ignored as a third and useless item).
      It does not hurt to surround the source (or destination) specifier by
      double quotes.
    
    
    Full Command Parameter Syntax:
    
      XXCOPY   source  [ destination ]  [ switches... ]
    
      All switches start with a slash (/) character whereas the source
      and the destination specifiers do not have the slash(/) prefix.
      The source and the destination specifiers must be separated from
      other items in the command line by at least one blank (space or tab)
      character.  On the other hand, you may omit blank characters between
      switches in order to minimize the total length of the command line.
    
      Example:
    
         XXCOPY  C:\mydir\   D:\yourdir\   /S/H
    
         Here, "C:\mydir\"  is the source specifier and "D:\yourdir\" is
         the destination specifier.  They do not start with a slash (/).
         It has two (/S and /H) switches.
    
      Note that the positions of the switches need not be at the end
      of the command line.  Switches may begin even before the source
      specifier.  The following command line is equivalent to the one
      shown above.
    
          XXCOPY /S  C:\mydir\  /H  D:\yourdir\
    
      The order of the switches is not generally important except when
      a conflicting switches are specified, the rightmost switch will
      prevail.  More rules for special cases are discussed at the end
      of this article.  For a complete syntax and semantics for the
      source specifier, see XXTB #04.
    
      Once you learn this simple rule, it is quite easy to understand a
      long XXCOPY command line.
    
    
    XXCOPY switches:
    
      A command switch (we call it just switch most often) is any command
      paremeter that is neither the source specifier (referred to as
      "source" above) nor the destination specifier (referred to as
      "destination" above).  A switch instructs XXCOPY the details of
      the operation which deviates the default behavior.  As a matter of
      fact, without the switches, XXCOPY is only as boring as the standard
      COPY command.
    
      For example,
    
          XXCOPY c:\mydir\  d:\yourdir\
    
      This line copies the files from one directory to another.  Since
      the default behavior is not to include hidden or system files, and
      not to include subdirectories, this operation will copy just a handful
      of regular files.  If the destination already has some of the files
      you will be greeted by a prompt asking whether you want to overwrite
      the file or not.  Moreover, if the existing file has the read-only
      attribute (i.e., write-protected), you are out of luck.
    
      The rich set of command switches set XXCOPY apart from other file
      management tools.  Being a command line program, XXCOPY is not
      easy to use.  You have no choice but to become familiar with the
      very large collection of switches (over 175 switches and growing),
      if you want to harness the power of XXCOPY.  The good news is that
      you need not learn all.
    
      Syntactically, all of XXCOPY's command switches starts with a slash
      ( /  some people call it forward-slash).  To keep the command line
      somewhat more manageable, XXCOPY allows you to connect one command
      switch with the next without any delimiting character (typically
      a space).  With just one exception (XXTB #24), an item that starts
      with a slash is a command switch.
    
      For more discussion of XXCOPY command switches and the detailed
      discussion of the source specifier, see the following
    
          for Command Parameter Reference                  XXTB #01
          for Command Reference Alphabetic Listing         XXTB #26
          for Command Reference Functional Classification  XXTB #27
          for The Wild-Wildcard Source Specifier           XXTB #28
    
     = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
    
    
    Source Specifier (XCOPY-compatible standard):
    
      XXCOPY's first argument (without regard to command switches) is
      the source specifier.  The source specifier is usually a path
      specifier for the source.  But, for Microsoft's XCOPY (and also for
      our XXCOPY), the source specifier may contain the directory and
      an optional file pattern specification whose subtleties are not
      fully appreciated by many XXCOPY users.
    
      The XCOPY-compatible source specifier has three parts:
    
         [ volume_spec ] [ directory ] [ file_pattern ]
    
    
      Example (the destination specifier is omitted here):
    
         XXCOPY    c:\mydir\*.doc
         XXCOPY    \\myserver\drivec\config.sys
    
    
      Here, the three parts in the XCOPY-compatible source specifier
      are quite obvious.  The second example is with the UNC which is
      how you specify a remote drive (via a network).
    
        volume_spec
    
          In most cases, the volume spec is a drive letter followed by a
          colon (e.g., C: ).  But, it can be a universal naming convention
          (UNC) string for a volume in a network (e.g., \\myserver\drivec ).
          If you omit volume_spec, the current drive is assumed.
    
        directory
    
          The name of the source directory.  When the XXCOPY command
          contains the subdirectory switch (/S and/or /E), the directory
          specifier denotes the starting directory where the source
          files and subdirectories are located.  The XCOPY-comatible
          directory part does not contain a wildcard character.  The
          more advanced "Wild-wild-source" feature in XXCOPY accepts
          wildcards.  For example,
    
              XXCOPY  C:\Windows\*\?cache*\*\*.jpg  \dst\
    
          A separate article, XXTB #28 gives you the full detail.
    
        pattern
    
          The last part within the source specifier denotes the pattern
          matching string which may contain wildcard characters (* or ?).
          It matches only the last components within a full filename.
    
    
    Destination Specifier:
    
      Just to make the discussion of XXCOPY's command parameter syntax
      complete, let us go over the subject of the remajing item, the
      destination specifier.  Fortunately the rules for this are not
      complicated.  The destination specifier has two parts:
    
         [ volume_spec ] [ dest_dir ]
    
        volume_spec
    
          As for the source specifier case, the destination may contain
          a volume specifier (e.g.,  C: ).  If it is omitted, the volume
          of the current directory will be used.
    
        dest_dir
    
          The name of the destination directory.  Here, the destination
          must be a directory name (which may or may not yet exist
          in the destination volume).  Unlike the original COPY command,
          you are not allowed to specify wildcard characters in the
          destination specifier which would be conveniently used to
          perform renaming action while copying the files.
    
          XXCOPY does not rename files while they are copied. therefore,
          no wildcard characters have no place in dest_dir.
    
      Unlike the source specifier counterpart, the destination specifier
      consists of only two parts both of which are optional.  When you
      omit both of them, then the command line would have no explicit
      argument as the destination specifier.  Don't worry, the current
      directory will be used as the default destination directory.  Or,
      you may just type "." which denotes the current directory explicitly.
    
    
    The Base Directory:
    
      When a directory (and the subdirectories) is copied from the
      source to the destination, the first level of the source directory
      will correspond to the first level of the destination directory
      that is specified as the destination.  We call the first level in
      the source directory the "Base Directory".  Since the destination's
      first level directory is named by the destination specifier that
      you provide in the command line, the directory name in the destination
      is not always the same.
    
      For example, when you run the following command,
    
         XXCOPY  c:\mypath\mysrcdir\   d:\your\dstdir\  /S
    
      Any part of the Base Directory is not necessarily become a part
      of the destination directory.  This is true even the last name
      (mysrcdir) does not automatically appear in the destination side.
      The end result will be like this.
    
         c:\mypath\mysrcdir\file1.doc   --> d:\your\dstdir\file1.doc
         c:\mypath\mysrcdir\sub1\a.doc  --> d:\your\dstdir\sub1\a.doc
    
      Here, the Base Directory is c:\mypath\mysrcdir\.  The concept of
      the Base Directory is even more important in the treatment of the
      exclusion parameter.  When an exclusion item is given as a relative
      path, the directory path specified is relative to the Base Directory.
    
      For example, with the same directory
    
         XXCOPY  c:\mypath\mysrcdir\   d:\your\dstdir\  /S /Xtemp*\
    
      The exclusion switch's parameter (temp*\) is understood to be
      relative to the Base Directory which is in this case:
    
         c:\mypath\mysrcdir\temp*\
    
      Of course, you may always use an absolute path for the /X parameter:
    
         XXCOPY c:\mypath\mysrcdir\ \dst\ /S /Xc:\mypath\mysrcdir\temp*\
    
      A more rigorous definition of Base Directory will be given in the
      discussion of the source directory which contain wildcards
      (Wild-Wildcard Source)  XXTB #28.
    
    
    
    
    [ Table of Contents ] [ Show as Detached ] [ >> ]