Se pueden hacer copias de seguridad incrementales en Windows desde línea de comandos sin necesidad de instalar ningún programa adicional con el viejo comando de MS-DOS xcopy.
Para que xcopy solo copie los ficheros modificados desde la última copia, debemos indicarle varios parámetros, con lo que la orden quedaría así:
xcopy "c:\origen\*.*" "c:\destino\*.*" /d/e/y/c/i/h/f/r/k > log.txt 2>&1
El significado de los parámetros es este:
- /d: Copia archivos cambiados durante o después de la fecha indicada. Si no se da ninguna fecha, copia sólo aquellos archivos cuya fecha de modificación en el origen es más nueva que la fecha de modificación en el destino.
- /e: Copia directorios y subdirectorios, incluyendo los vacíos.
- /y: Suprime la pregunta de confirmación para sobrescribir un archivo de destino existente.
- /c: Continua copiando incluso si ocurren errores (como que el archivo a copiar este en uso, con lo que dará un error de acceso denegado y no lo copiará).
- /i: Si el destino no existe y hay que copiar más de un archivo, se asume que el destino debe ser un directorio.
- /h: Copia también archivos ocultos y archivos de sistema.
- /f: Muestra los nombres completos de los archivos de origen y destino mientras se copia
- /r: Sobrescribe archivos de solo lectura
- /k: Copia atributos
- > log.txt: obtendremos un fichero log.txt (o el nombre que queramos indicarle) con un listado de los ficheros que se han copiado. Si omitimos esta ultima parte, el listado de ficheros copiados aparecerá en una pantalla de linea de comandos que se cerrará automáticamente al terminar la copia.
- 2>&1: incluirá en el fichero log.txt los errores que vayan surgiendo al copiar los archivos. Si no lo incluimos, en el log solo se verán los ficheros copiados pero no los errores, que saldrían solo por pantalla, en cuyo caso el log no sería fiable ya que si no estamos delante de la pantalla durante la copia no veriamos ningún error y pensariamos que la copia se ha realizado correctamente cuando puede no ser así.
Algunos de estos parametros solo están disponibles en la línea de comandos de Windows, pero no en MS-DOS.
Podemos incluir el comando en un fichero por lotes bat y añadirlo a una tarea programada para que se ejecute periódicamente de manera automática.
Puedes consultar la documentación completa del comando xcopy (en inglés) en la web de Microsoft.
Este comando es válido para todas las versiones de Windows, aunque si usas Vista o Windows 7 puede resultarte más útil robocopy.
Para copias de seguridad en Linux tenemos el comando rsync.
Mónica dice
Hola:
Alquien me puede decir como hacer copias de segruridad diarias con el xcopy. Copiando las carpetas y archivos y que se actualicen las modificaciones día a día. Estoy desesperada.
Gracias
Igor dice
Sara, puedes hacer dos cosas:
1. Los escribes en el bloc de notas y al guardar pones escoges la opción todos los archivos donde pone tipo, y le pones un nombre que acabe en .bat. Así tienes un archivo que al abrirlo hará las copias
2. Vas a inicio, accesorios, símbolo de sistema y los escribes ahí.
Aunque si no estás familiarizada con los comandos y el símbolo de sistema te recomiendo mejor un programa como cobian backup.
sara dice
Hola.
Me han comentado la opción de comandos xcopy para copias de seguridad.
Yo siempre he hecho copia y pega con los archivos.
Dónde hay que escribir los comandos. No se como hacerlo. En todos los foros se explican los distintos comandos, pero dónde se escriben?
Gracias
Richard dice
Gracias por el Código me sirvió mucho para hacer uno. Pero tengo una duda Si alguien me puede ayudar por favor.
QUIERO mostrar un log.txt aparte pero que me muestre tambien cuando se ejecuta el CMD.
el codigo que uso es este solo me muestra los datos en la consola. aparte quiero q me cree un un log sin perder en la consola soy nuevo en esto.
@echo off
Title= Despaldo de Archivos Modificados By-Rich
Echo ==================
ECHO HORA:
time /t
Echo ==================
Echo Fecha
date /t
Echo ==================
Echo Cantidad de Archivos COPIADOS
Echo ==================
for /f "tokens=1,2,3 delims=/" %%A IN ('DATE /T') do xcopy "C:DATOS*.*" "E:destino*.*" /S /Y /m /e /C /d
Echo ==================
pause
Igor dice
Nunca he usado esa opción. Te dejo lo que pone la ayuda de xcopy:
/D:m-d-y Copia archivos cambiados durante o después de la fecha.
Por ejemplo: /D:9-12-2012
jonathan dice
como agrego fecha al comando /d para que solo copie los archivos con fecha de modificación del día
Mincz dice
Ya encontré mi error, las extensiones a excluir deben de ir dentro de un documento de texto.
Este es la manera que logre que me funcione:
xcopy “c:origen*.*” “c:destino*.*” /d/e/y/c/i/h /exclude:c:excludefiles.txt > log.txt 2>&1
Mincz dice
IGOR Muchas gracias por tu gran ayuda, tengo una duda con respecto al comando que pones como ejemplo el comando funciona a la perfección, pero si yo deseo hacer dentro de la copia un /exclude:file como podría hacerlo.
Lo intente de esta manera:
xcopy "c:origen*.*" "c:destino*.*" /d/e/y/c/i/h/exclude:*.mp3 *.avi > log.txt 2>&1
Gracias por tu ayuda
elsosias dice
Muchas gracias
Tenia un problema tremendo.
El virus de la policia me tenia devorado.
rescate todos los archivos vía ms-2 y reinstale una copia de seguridad de acronis.
Sin ti no lo hubiera conseguido.
Gracia<s
ale dice
Gracias igual por responder hoy probe hacerlo con el comando robocopy y funciono a la perfeccion!! Gracias de tofas formas Igor
Igor dice
Pues es muy raro ale, no se cual puede ser el problema, siento no poder ayudarte más.
ale dice
Copy c:carpeta1*.* c:carpetacompartida
Sale el mensaje tantos archivos copiados.. Pero cuando los quiero ver desde win no hay nada de nada. Ni en la maquina q tengo la carpeta compartida ni en la otra. Pero desde dos los archivos existen..
ale dice
Gracias por tu respuesta Igor. Mira si entro desde windows se pueden copiar los archivos sin problema. El tema es si lo quiero hacer por dos me sale como q copio los archivos pero cuando voy a ver desde win voila..no hay nada!! Tendras idea q podra ser.voy a probar con la unidad de red. Yo le q hice es igual q tu pero con una carpeta compartida del otro pc. Todo es para poner un bat para respaldar archivos.
Igor dice
ale, ¿tienes acceso a esa ruta si entras desde el navegador? De todas maneras, yo nunca he probado xcopy directamente con direcciones de red, siempre hago primero una unidad de red, así puedo hacer la copia directamente con, por ejemplo,
xcopy c:carpeta*.* z:carpetadestino
ale dice
Hola intento copiar documentos de una pc a otra con este metodo
Usando la ip de la otra pc y me da un error de acceso denegado
La sintaxis es xcopy c:carpeta*.* 89.0.0.2c$carpetadestino
manuel dice
Extraordinario.
Gonzalo dice
Muy util tu blog. Lo consultaré mas a menudo. Saludos.
pensamientos para reflexionar dice
Saludos a todos. Estaba explorando por Internet y encontre tu pagina. Extraordinaria indicacion. Muchas gracias por comunicar tu experiencia! Es bueno saber que algunas personas ponen brio en la gestión de sus articulos. Voy a estar seguro de revisitarde vez en cuando.
Esther dice
Es que cuando los asteriscos me dice que el archivo *.* no se encuentra... es que no se lo estoy poniendo donde debo o no...
Gracias de antemano
Saludos
Esther dice
Necesito saber cual es la secuencia exacta para hacer una copia de seguiridad. En la que el origen es este:
traoo-fiwriterficheros.odt y el destino es una carpeta que creado en el escritorio llamada SEGU.
stefy dice
holaa muchas gracias justo hoy lo probé y si tenias razón los asteriscos son necesario para especificar que se copie todo 😀
así que muchas gracias por tu respuesta de todas manera.
meda gusto que alguien se de el tiempo para responder a las inquietudes de los lectores.
besos y adios..
Igor dice
stefy, añade los asteriscos:
xcopy c:*.* K:copia-segudidad*.* /d/e/y/c/i/h > resumen.txt
stefy dice
Hola sabes me gustaría que verificaras si los parámetros que estoy usando para copiar todo un disco duro están bien.
xcopy c: K:copia-segudidad /d/e/y/c/i/h > resumen.txt
Porque lo que necesito es copiar todo un disco duro a otro disco externo.
Igor dice
el xcopy y todos sus parámetros deberían estar independientemente de la versión del DOS. Un xcopy /? debería decirte todos los parámetros disponibles en esa versión.
Igor dice
Parece que tienes razón. Estoy mirando la documentación de xcopy en la web de microsoft: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds.mspx?mfr=true
Y no aparece el parámetro /J. Que extraño.
mauro dice
Una pregunta. Sé que en DOS en español, existe dentro del xcopy el /J , para copiar con búfer.
Ahora en una computadora tengo que hacer lo mismo, ya que son archivos muy pesados, el tema es que tengo el DOS en ingles, y me parece que ahi no existe el xcopy.
espero que me puedan ayudar.
gracias