Robocopy (Robust file copy) ya se introdujo dentro de un kit de recursos para Windows 2003, funcionando en XP y que viene por defecto en Vista, Windows 2008 y Windows 7.
La versión de Vista no funciona en XP, pero se puede descargar de Microsoft junto con un kit de recursos para Windows 2003. De todas maneras te lo hemos dejado en el disco X: en la ruta: X:\UPVWin95\Util\Robocopy
En ese directorio tienes el ejecutable y un pdf en inglés con todas las posibles combinaciones.
El formato estándar de uso es el siguiente:
robocopy <directorio_origen> <directorio_destino> /w:1 /r:1 /e /purge /log:<fichero.log>
- /w:1 –> Un segundo de espera entre reintentos (por defecto 30 seg.).
- /r:1 –> Número de reintentos si no puede copiar un archivo (por defecto 1.000.000).
- /e –>Copia subdirectorios aunque estén vacíos (con / s no se copian los directorios vacíos).
- /log –> Fichero de resultado.
- /purge –> Borra en el destino los archivos que no están ya en el origen.
Si tiene un disco USB y desea tener una copia de su información siempre actualizada bastará con ejecutar este comando (que puede guardar en un fichero del tipo copia.bat). La primera vez es lenta al tener que copiar todos los archivos del origen pero, al contrario que con el comando «copy», a partir de la segunda, sólo se actualizarán los archivos cambiados, por lo que la copia es casi instantánea si se hace en intervalos cortos.
Parámetros como /maxage: <n> y /minage: <n> permiten excluir los archivos más viejos o más nuevos que <n> días respectivamente. Otros parámetros como /XF y /XD permiten excluir ficheros o directorios que cumplen un patrón, etc …
Otra de las posibles utilidades de este comando es la de comparar dos directorios. Para ello tendrá que usar el parámetro /L que le permite obtener una lista de los cambios que se producirían si crea una copia. Así podrías saber cuáles son los ficheros modificados, los borrados y los nuevos. También os serviría para buscar los archivos más grandes, los documentos o cualquier otra posible combinación.
IMPORTANTE: No ponga el directorio destino primero ya que (con la opción /purge) se eliminarían los datos del directorio origen. También es importante excluir las uniones (junctions) /XJ ya que también podríamos perder los datos originales.