Copia archivos y directorios, incluidos subdirectorios desde un origen a un destino distinto.

Sintaxis

xcopy Origen [Destino] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:mm-dd-aaaa]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a|/m}] [/n] [/o] [/x] [/exclude:archivo1[+[archivo2]][+[archivo3]] [{/y|/-y}] [/z]

Parámetros

  • Origen: obligatorio, especifica la ubicación y los nombres de los archivos que desea copiar. Este parámetro debe incluir una unidad o una ruta de acceso.
  • Destino: especifica el destino de los archivos que se van a copiar. Este parámetro puede incluir una letra de unidad y dos puntos, un nombre de directorio, un nombre de archivo o una combinación de éstos.
  • /w: muestra el siguiente mensaje y espera la respuesta para comenzar a copiar archivos: "Presione cualquier tecla para empezar a copiar los archivos".
  • /p: pide confirmación antes de crear cada archivo de destino.
  • /c: omite los errores.
  • /v: comprueba cada archivo al escribirlo en el archivo de destino para asegurarse de que los archivos de destino y de origen son idénticos.
  • /q: suspende la presentación de mensajes de xcopy.
  • /f: muestra los nombres de los archivos de origen y de destino mientras se realiza la copia.
  • /l: muestra una lista con los archivos que se van a copiar.
  • /g: crea archivos de destino descifrados.
  • /d[:mm-dd-aaaa]: copia sólo los archivos de origen que se hayan cambiado en o después de la fecha especificada. Si no se incluye un valor de mm-dd-aaaa, xcopy copia todos los archivos de Origen que sean más recientes que los archivos de Destino existentes. Esta opción de línea de comandos permite actualizar los archivos que se hayan cambiado.
  • /u: copia sólo los archivos de Origen que existan en Destino.
  • /i: si Origen es un directorio o contiene comodines y Destino no existe, xcopy supone que destino especifica un nombre de directorio y crea un nuevo directorio. A continuación, xcopy copia en el nuevo directorio todos los archivos especificados. De manera predeterminada, xcopy le pedirá que indique si Destino es un archivo o un directorio.
  • /s: copia directorios y subdirectorios, a menos que estén vacíos. Si omite /s, xcopy se aplica a un único directorio.
  • /e: copia todos los subdirectorios, incluso si están vacíos. Utilice /e con las opciones de línea de comandos /s y /t.
  • /t: sólo copia la estructura (árbol) de subdirectorios, no los archivos. Para copiar directorios vacíos, debe incluir la opción de línea de comandos /e.
  • /k: copia archivos y conserva el atributo de sólo lectura en los archivos de destino, si está presente en los archivos de origen. De manera predeterminada, xcopy quita el atributo de sólo lectura.
  • /r: copia archivos de sólo lectura.
  • /h: copia archivos con atributos de sistema y oculto. De manera predeterminada, xcopy no copia los archivos del sistema ni los ocultos.
  • /a: sólo copia los archivos de origen a los que se haya asignado el atributo de modificado. /a no cambia el atributo de modificado de los archivos de origen.
  • /m: copia los archivos de origen a los que se haya asignado el atributo de modificado. A diferencia del modificador /a, el modificador /m quita el atributo de modificado de los archivos especificados en el origen.
  • /n: crea copias usando los nombres cortos de archivos o directorios de NTFS. /n es necesario cuando copie archivos o directorios de un volumen NTFS a un volumen FAT o cuando la convención de nomenclatura del sistema de archivos FAT (8,3) sea necesaria en el sistema de archivos de destino. El sistema de archivos de destino puede ser FAT o NTFS.
  • /o: copia la información de propiedad de archivo y de la lista de control de acceso discrecional (DACL).
  • /x: copia información de la configuración de auditoría de archivos y de la lista de control de acceso al sistema (SACL) (implica el uso de /o).
  • /exclude: nombreDeArchivo1[+[nombreDeArchivo2]][+[nombreDeArchivo3]]: especifica una lista de archivos que contienen cadenas.
  • /y: suprime las preguntas que le piden que confirme que desea sobrescribir un archivo de destino existente.
  • /-y: le pide que confirme que desea sobrescribir un archivo de destino existente.
  • /z: copia a través de una red en modo reiniciable.
  • /?: muestra la ayuda en el símbolo del sistema.

Observaciones

  • Usar /v: Windows XP no utiliza este comando. Solamente se acepta por compatibilidad con los archivos de MS-DOS.
  • Usar /exclude: muestra cada cadena en una línea distinta en cada archivo. Si alguna de las cadenas mostradas coincide con cualquier parte de la ruta de acceso absoluta del archivo que se va a copiar, ese archivo queda excluido del proceso de copia. Por ejemplo, si especifica la cadena "Obj", se excluirán todos los archivos del directorio Obj. Si especifica la cadena ".obj", se excluirán todos los archivos con la extensión .obj.
  • Usar /z: si la conexión se interrumpe durante la fase de copia (por ejemplo, si se desconecta el servidor que sirve la conexión), la copia se reanudará una vez que la conexión se haya vuelto a establecer. /z también presenta el porcentaje de la operación de copia que se ha completado en cada archivo.
  • Usar /y en la variable de entorno COPYCMD: puede utilizar /y en la variable de entorno COPYCMD. Este comando puede suplantarse mediante el modificador /-y en la línea de comandos. De manera predeterminada, se le preguntará si desea sobrescribir, a menos que ejecute copy desde un archivo de comandos por lotes.
  • Copiar archivos cifrados: la copia de archivos cifrados en un volumen que no admita EFS generará un error. Descifre primero los archivos o cópielos en un volumen que admita EFS.
  • Anexar archivos: para anexar archivos, especifique un único archivo de destino, pero varios archivos de origen (mediante caracteres comodín o el formato archivo1+archivo2+archivo3).
  • Valor predeterminado para Destino: si omite Destino, el comando xcopy copia los archivos al directorio actual.
  • Especificar si Destino es un archivo o un directorio: si Destino no contiene un directorio existente y no termina con una barra diagonal inversa (), aparece el siguiente mensaje:

    ¿El parámetro de destino especifica un archivo
    o un directorio como destino
    (F = archivo, D = directorio)?

    Presione F si desea que los archivos se copien en un archivo. Presione D si desea que los archivos se copien en un directorio.

    Este mensaje se puede suprimir si utiliza la opción de línea de comandos /i, que hará que xcopy suponga que el destino es un directorio si el origen son varios archivos o un directorio.

  • Usar el comando xcopy para establecer el atributo de modificado de los archivos de Destino: el comando xcopy crea archivos con el atributo de modificado, aunque este atributo no se haya asignado a los archivos de origen.
  • Diferencias entre xcopy y diskcopy: si tiene un disco que contiene archivos que se encuentren en subdirectorios y desea copiarlos a un disco que tenga un formato diferente, debe utilizar el comando xcopy en lugar de diskcopy. Como el comando diskcopy copia los discos pista a pista, requiere que tanto el disco de origen como el de destino tengan el mismo formato. El comando xcopy no tiene este requisito. Utilice xcopy a menos que necesite una copia completa de la imagen del disco.
  • Códigos de salida de xcopy: para procesar los códigos de salida que devuelve xcopy, utilice el parámetro errorlevel en la línea de comandos if de un programa por lotes. En la siguiente tabla se enumera cada código de salida y una descripción:
    • 0: archivos copiados sin error.
    • 1: no se encontraron archivos para copiar.
    • 2: el usuario presionó CTRL+C para finalizar xcopy.
    • 4: error de inicialización. No hay suficiente memoria o espacio en el disco, se escribió un nombre de unidad no válido o se utilizó una sintaxis incorrecta en la línea de comandos.
    • 5: error de escritura de disco.

Ejemplos

  • Para copiar todos los archivos y subdirectorios (incluidos los subdirectorios vacíos) de la unidad A a la unidad B, escriba:

    xcopy a: b: /s /e

  • Para incluir los archivos del sistema y los ocultos en el ejemplo anterior, agregue la opción de línea de comandos /h del modo siguiente:

    xcopy a: b: /s /e /h

  • Para actualizar archivos del directorio "Facturacion" con los archivos del directorio "Contabilidad" que se hayan cambiado desde el 29 de diciembre de 1993, escriba:

    xcopy contabilidad facturacion /d:12-29-1993

  • Para actualizar todos los archivos que existan en el directorio "Facturacion" del ejemplo anterior, independientemente de la fecha, escriba:

    xcopy contabilidad facturacion /u

  • Puede crear un programa por lotes para realizar operaciones de xcopy y usar el comando if de procesos por lotes para procesar los códigos de salida si se produce un error. Por ejemplo, el siguiente programa por lotes utiliza parámetros reemplazables para los parámetros origen y destino de xcopy:

    @echo off


    xcopy %1 %2 /s /e

    if errorlevel 4 goto errorMemoria
    if errorlevel 2 goto Cancelada
    if errorlevel 0 goto Salir

    :errorMemoria
    echo Espacio insuficiente en unidad destino
    goto salir

    :Cancelada
    echo El usuario canceló la copia de seguridad pulsando CTRL+C
    goto salir

    :Salir

Un ejemplo de uso del programa anterior (una vez guardado el código en un fichero .bat de proceso por lotes):

copias c:facturacion c:contabilidad