xcopy

Copia archivos y directorios, incluidos los subdirectorios.

Para obtener ejemplos de cómo utilizar este comando, consulte Ejemplos.

Sintaxis

Xcopy <Source> [<Destination>] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d [:MM-DD-YYYY]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a | /m}] [/n] [/o] [/x] [/exclude:FileName1[+[FileName2]][+[FileName3]]] [{/y | /-y}] [/z] [/b] [/j]

Parámetros

Parámetro Description
<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 desea 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 estos.
/w Muestra el mensaje siguiente y espera la respuesta antes de empezar a copiar archivos: Presione cualquier tecla para empezar a copiar

/p Le pide que confirme si desea crear cada archivo de destino.
/C Omite los errores.
/v Comprueba cada archivo a medida que se escribe en el archivo de destino para asegurarse de que los archivos de destino son idénticos a los archivos de origen.
/q Suprime la presentación de mensajes de xcopy.
/f Muestra los nombres de archivo de origen y destino durante la copia.
/l Muestra una lista de los archivos que se van a copiar.
/g Crea archivos de destino descifrados cuando el destino no admite el cifrado.
/d [:MM-DD-YYYY] Copia los archivos de origen modificados en o después de la fecha especificada. Si no incluye un valor MM-DD-YYYY,xcopy copia todos los archivos de origen que son más recientes que los archivos de destino existentes. Esta opción de línea de comandos permite actualizar los archivos que han cambiado.
/U Copia los archivos del origen que solo existen en destino.
/i Si Source es un directorio o contiene caracteres comodín y Destination no existe, xcopy da por supuesto que Destination especifica un nombre de directorio y crea un nuevo directorio. A continuación, xcopy copia todos los archivos especificados en el nuevo directorio. De forma predeterminada, xcopy le pide que especifique si Destination es un archivo o un directorio.
/s Copia directorios y subdirectorios, a menos que estén vacíos. Si omite /s, xcopy funciona dentro de un único directorio.
/e Copia todos los subdirectorios, incluso si están vacíos. Use /e con las opciones de línea de comandos /s y /t.
/t Copia solo la estructura del subdirectorio (es decir, el árbol), no los archivos. Para copiar directorios vacíos, debe incluir la opción de línea de comandos /e.
/k Copia los archivos y conserva el atributo de solo lectura en los archivos de destino si están presentes en los archivos de origen. De forma predeterminada, xcopy quita el atributo de solo lectura.
/r Copia archivos de solo lectura.
/h Copia los archivos con atributos de archivo ocultos y del sistema. De forma predeterminada, xcopy no copia archivos ocultos o del sistema
/a Copia solo los archivos de origen que tienen establecidos sus atributos de archivo de archivo. /a no modifica el atributo de archivo de archivo del archivo de origen. Para obtener información sobre cómo establecer el atributo de archivo de archivo mediante attrib, vea Referencias adicionales.
/m Copia los archivos de origen que tienen establecidos sus atributos de archivo de archivo. A diferencia de /a, /m desactiva los atributos de archivo en los archivos especificados en el origen. Para obtener información sobre cómo establecer el atributo de archivo de archivo mediante attrib, vea Referencias adicionales.
/n Crea copias mediante los nombres de directorio o archivo corto NTFS. /n es necesario cuando se copian archivos o directorios de un volumen NTFS a un volumen FAT o cuando se requiere la convención de nomenclatura del sistema de archivos FAT (es decir, 8,3 caracteres) en el sistema de archivos de destino. El sistema de archivos de destino puede ser FAT o NTFS.
/o Copia la información de la lista de control de acceso discrecional (DACL) y la propiedad de los archivos.
/x Copia la configuración de auditoría de archivos y la información de la lista de control de acceso del sistema (SACL) (implica /o).
/exclude:FileName1[+[FileName2]][+[FileName3]( )] Especifica una lista de archivos. Se debe especificar al menos un archivo. Cada archivo contendrá cadenas de búsqueda con cada cadena en una línea independiente del archivo.
Cuando cualquiera de las cadenas coincide con cualquier parte de la ruta de acceso absoluta del archivo que se va a copiar, ese archivo se excluirá de la copia. Por ejemplo, si se especifica el obj de cadena, se excluirán todos los archivos debajo del obj de directorio o todos los archivos con la extensión .obj.
/y Suprime las solicitudes para confirmar que desea sobrescribir un archivo de destino existente.
/-y Solicita confirmación de que desea sobrescribir un archivo de destino existente.
/z Copia a través de una red en modo reiniciable.
/b Copia el vínculo simbólico en lugar de los archivos. Este parámetro se introdujo en Windows Vista®.
/j Copia los archivos sin almacenar en búfer. Se recomienda para archivos muy grandes. Este parámetro se agregó en Windows Server 2008 R2.
/? Muestra la ayuda en el símbolo del sistema.

Observaciones

  • Uso de /z

    Si pierde la conexión durante la fase de copia (por ejemplo, si el servidor sin conexión establece la conexión), se reanuda después de restablecer la conexión. /z también muestra el porcentaje de la operación de copia completada para cada archivo.

  • Usar /y en la variable de entorno COPYCMD.

    Puede usar /y en la variable de entorno COPYCMD. Puede invalidar este comando mediante /-y en la línea de comandos. De forma predeterminada, se le pedirá que sobrescriba.

  • Copia de archivos cifrados

    La copia de archivos cifrados en un volumen que no admite EFS produce un error. Descifre primero los archivos o copie los archivos en un volumen que admita EFS.

  • Anexar archivos

    Para anexar archivos, especifique un solo archivo para el destino, pero varios archivos para el origen (es decir, mediante caracteres comodín o formato file1+file2+file3).

  • Valor predeterminado para Destino

    Si omite Destination, el comando xcopy copia los archivos en el directorio actual.

  • Especificación de si Destination es un archivo o directorio

    Si Destination no contiene un directorio existente y no termina con una barra diagonal inversa (), aparece el mensaje siguiente:

    Does <Destination> specify a file name or directory name on the target(F = file, D = directory)?
    

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

Puede suprimir este mensaje mediante la opción de línea de comandos /i, lo que hace que xcopy suponga que el destino es un directorio si el origen es más de un archivo o un directorio.

  • Uso del comando xcopy para establecer el atributo archive para los archivos de destino

    El comando xcopy crea archivos con el conjunto de atributos de archivo, independientemente de si este atributo se estableció o no en el archivo de origen. Para obtener más información sobre los atributos de archivo y attrib, vea Referencias adicionales.

  • Comparación de xcopy y diskcopy

    Si tiene un disco que contiene archivos en subdirectorios y desea copiarlo en un disco con un formato diferente, use el comando xcopy en lugar de diskcopy. Dado que el comando diskcopy copia los discos de seguimiento por seguimiento, los discos de origen y de destino deben tener el mismo formato. El comando xcopy no tiene este requisito. Use xcopy a menos que necesite una copia de imagen de disco completa.

  • Códigos de salida para xcopy

    Para procesar los códigos de salida devueltos por xcopy,use el parámetro ErrorLevel en la línea de comandos if de un programa por lotes. Para obtener un ejemplo de un programa por lotes que procesa códigos de salida mediante si, vea Referencias adicionales. En la tabla siguiente se muestra cada código de salida y una descripción.

    Código de salida Descripción
    0 Los archivos se copiaron sin errores.
    1 No se encontró ningún archivo para copiar.
    2 El usuario ha presionado CTRL+C para finalizar xcopy.
    4 Error de inicialización. No hay suficiente memoria o espacio en disco, o ha escrito un nombre de unidad no válido o una sintaxis no válida en la línea de comandos.
    5 Error de escritura en disco.

Ejemplos

1. 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

2. Para incluir cualquier archivo oculto o del sistema en el ejemplo anterior, agregue la opción de línea de comandos/h como se muestra a continuación:

xcopy a: b: /s /e /h

3. Para actualizar los archivos del directorio \Reports con los archivos del directorio \Rawdata que han cambiado desde el 29 de diciembre de 1993, escriba:

xcopy \rawdata \reports /d:12-29-1993

4. Para actualizar todos los archivos que existen en \Reports en el ejemplo anterior, independientemente de la fecha, escriba:

xcopy \rawdata \reports /u

5. Para obtener una lista de los archivos que va a copiar el comando anterior (es decir, sin copiar realmente los archivos), escriba:

xcopy \rawdata \reports /d:12-29-1993 /l > xcopy.out

El archivo xcopy.out enumera todos los archivos que se van a copiar.

6. Para copiar el directorio \Customer y todos los subdirectorios en el directorio \\Public\Address en la unidad de red H:, conserve el atributo de solo lectura y se le pedirá cuando se cree un nuevo archivo en H:, escriba:

xcopy \customer h:\public\address /s /e /k /p

7. Para emitir el comando anterior, asegúrese de que xcopy cree el directorio \Address si no existe y suprima el mensaje que aparece al crear un nuevo directorio, agregue la opción de línea de comandos /i como se indica a continuación:

xcopy \customer h:\public\address /s /e /k /p /i

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

@echo off
rem COPYIT.BAT transfers all files in all subdirectories of
rem the source drive or directory (%1) to the destination
rem drive or directory (%2)
xcopy %1 %2 /s /e
if errorlevel 4 goto lowmemory
if errorlevel 2 goto abort
if errorlevel 0 goto exit
:lowmemory
echo Insufficient memory to copy files or
echo invalid drive or command-line syntax.
goto exit
:abort
echo You pressed CTRL+C to end the copy operation.
goto exit
:exit

Para usar el programa por lotes anterior para copiar todos los archivos del directorio C:\Prgmcode y sus subdirectorios en la unidad B, escriba:

copyit c:\prgmcode b:

El intérprete de comandos sustituye C:\Prgmcode por %1 y B: para %2y, a continuación, usa xcopy con las opciones de línea de comandos /ey /s. Si xcopy encuentra un error, el programa por lotes lee el código de salida y va a la etiqueta indicada en la instrucción IF ERRORLEVEL adecuada y, a continuación, muestra el mensaje adecuado y sale del programa por lotes.

9. En este ejemplo se copian todos los directorios no vacíos, además de los archivos cuyo nombre coincide con el patrón especificado con el símbolo de asterisco.

xcopy .\toc*.yml ..\..\Copy-To\ /S /Y

rem Output example.
rem  .\d1\toc.yml
rem  .\d1\d12\toc.yml
rem  .\d2\toc.yml
rem  3 File(s) copied

En el ejemplo anterior, este valor de parámetro de origen determinado .\toc*.yml copia los mismos 3 archivos incluso si se quitaron sus dos caracteres de ruta de acceso .\. Sin embargo, no se copiaría ningún archivo si se quitase el carácter comodín de asterisco del parámetro de origen, lo que hace que sea simplemente .\toc.yml.

Referencias adicionales