¿Cuál es el comando de línea de comando de Windows para copiar archivos?

34

¿Cuál es el comando del símbolo del sistema de Windows para copiar archivos?

Necesito mover un archivo de la ubicación A a la ubicación B. Además, si la carpeta para la ubicación B no existe, quiero que se cree.

Necesito que esto sea una línea de comando para poder automatizarlo.

La versión de Windows es XP.

David Basarab
fuente
1
robocopyfunciona muy bien también
Nixphoe

Respuestas:

44

El comando xcopyes lo que estás buscando. Ejemplo:

xcopy source destination /E /C /H /R /K /O /Y

El comando anterior copiará el origen al destino, los archivos y directorios (incluidos los vacíos), no se detendrá por error, copiará los archivos ocultos y del sistema, sobrescribirá los archivos de solo lectura, preservará los atributos y la información de propiedad / ACL, y suprimirá el solicitando sobrescribir los archivos de destino existentes.

/E    Copies directories and subdirectories, including empty ones.
      Same as /S /E. May be used to modify /T.
/C    Continues copying even if errors occur.
/H    Copies hidden and system files also.
/R    Overwrites read-only files.
/K    Copies attributes. Normal Xcopy will reset read-only attributes.
/O    Copies file ownership and ACL information.
/Y    Suppresses prompting to confirm you want to overwrite an
      existing destination file.

Para más información escriba xcopy /?y su línea de comando.

KCD
fuente
2
Las versiones futuras de Windows incluyen RoboCopy. De XCOPY de Vista: "NOTA: Xcopy ahora está en desuso, utilice Robocopy".
George Tsiokos
1
Curiosamente, dos años más tarde después de su comentario, George, xcopy todavía 'gobierna el mundo' en Windows 7.
Tenga en cuenta que los entornos Windows XP integrados (POSReady 2009, etc.) no se incluyen con xcopy.
Epoc
¡He sugerido una edición para enumerar todas estas opciones ...! Si no lo está automatizando /E /Hy tal vez /K /Olo lleve lejos con algunas indicaciones útiles
KCD
No lo olvide /J, lo que evita un error con XCopy al copiar archivos grandes. No estoy seguro de por qué no lo convertirían en el predeterminado ...
BlueRaja
8

Use md para crear la carpeta (está bien si ya existe)

Use copiar o mover para archivos y xcopy para carpetas

Dani
fuente
¿Me puede dar un ejemplo de la sintaxis?
David Basarab
3
copy fred.txt copy_of_fred.txt
Adam Gibbins
1
dupdo /? le dará el texto de ayuda, como una página de manual de DOS.
Scottie T
2

En un archivo por lotes:

if not exists locationB\nul mkdir locationB
copy locationA\file locationB

if not existscomprueba el parámetro para ver si existe, pero solo funciona en archivos. Para verificar la existencia de un directorio , debe buscar un 'pseudoarchivo' llamado "nul": la comprobación de la existencia de este archivo siempre devolverá verdadero si el directorio existe.

Las copias de línea copiar el archivo denominado fileen el directorio locationAde locationBy los nombres de archivo de la misma cosa. Si desea cambiar el nombre del archivo al mismo tiempo, también puede hacerlo:

copy locationA\file locationB\newfilename
Graeme Perrow
fuente
2

Si desea la capacidad de sincronizar la copia y otras características avanzadas (ignore ciertas carpetas, solo incluya ciertos comodines), mire robocopy. Incluido en Vista y más allá, opcional (de las herramientas del kit de recursos) en versiones anteriores.

Ricardo
fuente
Para cualquier cosa importante, voy a ir con robocopy, también. Me parece recordar una gran diferencia de rendimiento con respecto a xcopy cuando sincronizo una gran cantidad de archivos.
Kara Marfia
1

Use ROBOCOPY si está creando scripts de respaldo. xcopy ha quedado en desuso y es probable que deje de usarse en un futuro próximo. robocopy puede hacer todo lo que xcopy puede. También es más flexible y confiable. Crear scripts con robocopy los preparará para el futuro.


  1. Use robocopy para copiar fácilmente carpetas. El comando robocopy reemplaza al comando xcopy. Puede copiar rápidamente carpetas completas sin tener que preocuparse por definir el contenido. Por ejemplo, para copiar todo el contenido del directorio C: \ tools a la nueva carpeta D: \ backup \ tools, ingrese lo siguiente:

    robocopy C:\tools D:\backup\tools /e
    

    El modificador / e le dice a robocopy que incluya todos los subdirectorios. Esto incluye carpetas vacías. robocopy copiará automáticamente los archivos ocultos y del sistema. Creará nuevos directorios si no existen en la ubicación de destino.

  2. Reflejar un directorio. Duplicar un directorio es excelente para hacer copias de seguridad. La opción espejo de robocopy copiará todo el contenido del origen al destino. Luego eliminará cualquier cosa en el destino que no exista en la fuente. Esto garantiza que su copia de seguridad solo tenga las últimas versiones de sus archivos. Por ejemplo, para duplicar C: \ Usuarios \ Mis documentos en D: \ copia de seguridad \ Mis documentos, ingrese lo siguiente: [4]

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /mir
    

    Esta función preservará todos los permisos de los archivos originales.

  3. Habilitar reinicio. Es posible que desee incluir la posibilidad de reiniciar el proceso en caso de que la conexión se corte a mitad de la copia.

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /z
    
  4. Registre el proceso de copia. robocopy le permite crear un archivo de registro. Esto puede ayudarlo a detectar problemas o generar un archivo de lo que se ha copiado.

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /log+:<filename>.txt
    

    El modificador / log + agregará el archivo de registro existente en lugar de sobrescribirlo. Si prefiere sobrescribir el archivo de registro anterior, use /log:.txt.

Program-Me-Rev
fuente
0

xcopy creará la estructura de directorios para usted. El truco consiste en utilizar la opción / I y arrojar un asterisco al final del nombre del archivo para que xcopy piense que está copiando varios archivos; de lo contrario, le preguntará si el nombre de destino es el nombre del archivo que desea o el nombre del directorio que desea . Por ejemplo.

xcopy /I c:\<SourceDir>\<SourceFile> c:\<TargetDirThatDoesNOTExist>

También miraría RoboCopy, pero debes obtenerlo del kit de recursos, ya que no está en Windows hasta Vista.

WaldenL
fuente
-1

El comando anterior crea un nivel de directorio adicional con el nombre del archivo fuente. Entonces ... xcopy / I srcdir \ dir1 \ dir2 \ file1.txt * destdir \ dir1 \ dir2 \ file1.txt da como resultado destdir \ dir1 \ dir2 \ file1.txt \ file1.txt

Jeff
fuente
1
No tiene sentido responder una pregunta tan antigua, que ya tiene una respuesta aceptada y no aporta un valor agregado en su respuesta.
alphamikevictor