Command: xcopy (rxcopy)

  XCOPY copies files and directories, including subdirectories.

Syntax:

  XCOPY source [destination] [options]
        source       Specifies the directory and/or name of file(s) to
                     copy. The source must be either a drive or a full
                     path.
        destination  Specifies the location and/or name of new file(s).
                     The destination to copy to. If not present, xcopy
                     assumes the working directory.

Options:

  /A          Copies only files with the archive attribute set and
              doesn't change the attribute.
  /C          Continues copying even if errors occur.
  /D[:M/D/Y]  Copies only files which have been changed on or after the
              specified date. When no date is specified, only files which
              are newer than existing destination files will be copied.
  /E          Copies any subdirectories, even if empty.
  /F          Display full source and destination name.
  /H          Copies hidden and system files as well as unprotected
              and system files.
  /I          If destination does not exist and copying more than one
              file, assume destination is a directory.
  /L          List files without copying them. (simulates copying).
  /M          Copies only files with the archive attribute set and turns
              off the archive attribute of the source files after copying
              them.
  /N          Suppresses prompting to confirm you want to overwrite an
              existing destination file and skips these files.
  /P          Prompts for confirmation before creating each destination
              file.
  /Q          Quiet mode, don't show copied filenames.
  /R          Overwrite read-only files as well as unprotected files.
  /S          Copies directories and subdirectories except empty ones.
  /T          Creates directory tree without copying files. Empty
              directories will not be copied. To copy them add switch /E.
  /V          Verifies each new file.
  /W          Waits for a keypress before beginning.
  /Y          Suppresses prompting to confirm you want to overwrite an
              existing destination file and overwrites these files.
  /-Y         Causes prompting to confirm you want to overwrite an
              existing destination file.
  /?          Shows the help.

Comments:

  The switch /Y or /N may be preset in the COPYCMD ENVIRONMENT VARIABLE.
  This may be overridden with /-Y on the command line.
    e.g. SET COPYCMD=/Y.
  To cancel the /Y for a particular XCOPY command, use /-Y at the
  command line.
  The COPYCMD variable also affects the COPY command. Use /Y to change
  the way both COPY and XCOPY behave. Use /N, which ignores COPY, to
  change only the way XCOPY behaves.
  XCOPY may be used to determine if a drive is valid in a BATCH FILE.
    XCOPY %drive%\NUL /L >NUL
    IF NOT ERRORLEVEL 5 GOTO invaliddrive
  XCOPY may be used to determine if the destination drive is full in a
  BATCH FILE.
    XCOPY %drive1%\%dir% %drive1%\%dir% /S
    IF ERRORLEVEL 39 GOTO destinationfull

  XCOPY supports NLS (national language support).
  XCOPY has the following ERRORLEVEL / EXITCODES:
     0  No error. XCOPY successfully copied the files.
     1  File not found. XCOPY could not find the source file(s).
     4  Path not found. XCOPY could not find the source or
        destination path. Format invalid.
        The user used the wrong syntax on the command line.
     5  Access denied. The user does not have access to the
        source or destination files.
     8  Insufficient memory. There is insufficient system memory
        to carry out the command. (Not implemented because not
        possible to handle in a high level language like C!)
    29  Write fault. XCOPY could not write a destination file
        or directory.
    30  Read fault. XCOPY could not read a source file.
    39  Insufficient disk space. There is insufficient disk
        space in the destination path.

Examples:

    xcopy a:\test\*.* c:\test /q
  In a batch file:
    xcopy a:\test\*.* c:\test\test6 /s /f /i
    if errorlevel 39 echo harddrive is full
    pause

See also:

  batch file
  copy
  diskcopy
  environment variable
  errorlevel/exitcode
  goto
  if
  move
  set (config.sys command)

  Copyright © 1998 Jim Hall, updated 2007 by W. Spiegl.

  This file is derived from the FreeDOS Spec Command HOWTO.
  See the file H2Cpying for copying conditions.