2012-10-01 21:32:51 +0000 2012-10-01 21:32:51 +0000
62
62

Usando robocopia y excluyendo múltiples directorios

Estoy tratando de copiar algunos directorios de un servidor antes de restaurar desde la copia de seguridad (mi última copia de seguridad estaba corrupta, así que tengo que usar una más antigua :( ). Estoy en el entorno de recuperación de Windows y tengo acceso al sistema de archivos del servidor G: Estoy tratando de copiar algunos directorios de un servidor antes de restaurar desde la copia de seguridad (mi última copia de seguridad estaba corrupta, así que tengo que usar una más antigua :( ). Estoy en el entorno de recuperación de Windows y tengo acceso al sistema de archivos del servidor y a mi medio de copia de seguridadC: Estoy tratando de copiar algunos directorios de un servidor antes de restaurar desde la copia de seguridad (mi última copia de seguridad estaba corrupta, así que tengo que usar una más antigua :( ). Estoy en el entorno de recuperación de Windows y tengo acceso al sistema de archivos del servidor G: Estoy tratando de copiar algunos directorios de un servidor antes de restaurar desde la copia de seguridad (mi última copia de seguridad estaba corrupta, así que tengo que usar una más antigua :( ). Estoy en el entorno de recuperación de Windows y tengo acceso al sistema de archivos del servidor y a mi medio de copia de seguridad . Pero, como estoy más familiarizado con Linux, estoy teniendo un poco de problemas con la línea de comandos en Windows, específicamenterobocopy`.

Quiero copiar múltiples directorios (manteniendo la misma estructura de directorios) de G:\ a C:\ mientras excluyo otros (a saber, las carpetas de Windows y Archivos de Programa). No puedo entender la sintaxis de la opción /XD. Esperaba hacer algo como:

robocopy G: C:\backup /CREATE /XD "dir1","dir2", ...

NOTA: Quiero aclarar que quiero copiar los archivos actuales manteniendo la estructura de directorios también. Acabo de comprobarlo, y /create sólo crea archivos vacíos. Qué raro.

Respuestas (4)

93
93
93
2012-10-01 22:13:49 +0000

Lo descubrí con un poco de prueba y error y el /L (para probar el comando antes de hacerlo de verdad). El comando con el que termino es:

robocopy G: C:\backup /MIR /XD G:\dir1 "G:\dir 2" G:\dir3 ...

Aparentemente, incluir barras de arrastre evita que Robocopy analice la lista de directorios correctamente, así que asegúrate de no incluir barras de arrastre en los nombres de los directorios y recuerda poner comillas alrededor de los directorios con espacios en el nombre.

La opción /MIR mantiene la misma estructura de directorios al copiar los archivos.

Editar: Después de investigar un poco más, mejoré un poco el comando:

robocopy G: C:\backup /MIR /Z /LOG:C:\todaysdate-backup.log /XF *.iso *.log *.au /XD G:\dir1 ...

Las adiciones son las siguientes:

  • /Z permite reiniciar el trabajo
  • /LOG:<logfile path> es bastante auto-explicativo.
  • /XF se usa para excluir ciertos tipos de archivos para que no tome tanto tiempo
7
7
7
2017-10-22 10:08:32 +0000

tienes que repetir la /XDparte

C:\>robocopy "C:\Users\weberjn\Google Drive" "u:\Google Drive" /e /dcopy:t /copy:DT /r:0 /XD "C:\Users\weberjn\Google Drive\photos" /XD "C:\Users\weberjn\Google Drive\Google Photos"
5
5
5
2016-04-07 19:59:41 +0000

Sé que esto no responde a la pregunta de OP, pero a cualquiera de aquí de google: XD fallará en un archivo de trabajo si usas comillas.

Malo:

::
:: Exclude These Directories :
::
    /XD :: eXclude Directories matching these names
        "Temporary Internet Files"

Bueno:

::
:: Exclude These Directories :
::
    /XD :: eXclude Directories matching these names
        Temporary Internet Files

Coloca tantas exclusiones como quieras, línea tras línea, sin usar comillas (haya o no espacios).

La forma en que descubrí esto fue usando el interruptor de línea de comando /SAVE:myjobname que quitó las comillas de mis directorios de citas!

2
2
2
2018-03-18 05:36:38 +0000

Mi solución para esto fue crear archivos .txt que contienen los archivos o directorios que quiero incluir o excluir. Tengo estos archivos en una subcarpeta “rcXcludes” en mi carpeta “Backup”. Mi método para nombrar los archivos es el siguiente. Les pongo un prefacio con “rc” (para robocopy), luego alguna notación reconocible para la aplicación o parte del sistema de archivos en el comando robocopy, luego añado “B” o “R” (para Backup o Restore), luego “I” o “X” (para Incluir o Excluir), luego “D” o “F” (para Directorio o Archivo). Rodeo cada entrada con comillas dobles y un espacio entre las entradas. Un archivo “Incluir” puede tener archivos o directorios, pero los directorios deben tener una barra invertida. En un archivo “Excluir” para directorios no se usa una barra invertida. Las entradas de los directorios son relativas a la ruta de origen en el comando robocopy. Todo el contenido de cualquiera de estos archivos .txt debe estar en una línea y no tener una alimentación de línea de retorno carraige. En mi archivo por lotes, uso un comando SET /P para importar el archivo .txt en una variable. Luego uso estas variables para ARCHIVOS o después de /XF o /XD. Por ejemplo, para hacer una copia de seguridad del perfil de Chrome del usuario actual sin copiar toda la carpeta “Default”, utilizo lo siguiente.

rcChromeBIF.txt  
"Bookmarks" "Custom Dictionary.txt" "Extension Cookies" "Favicons" "History" "Login Data" "Preferences" "Top Sites" "Visited Links" "Web Data" "Databases\" "Extensions\" "Local Storage\" "Plugin Data\" "User Scripts\" "User StyleSheets\"

rcChromeBXF.txt  
"Bookmarks.bak" "ChromeDWriteFontCache" "Cookies" "Cookies-journal" "Current Session" "Current Tabs" "Extension Cookies-journal" "Favicons-journal" "Google Profile.ico" "History Provider Cache" "History-journal" "Last Session" "Last Tabs" "Login Data-journal" "Network Action Predictor" "Network Action Predictor-journal" "Network Persistent State" "Origin Bound Certs" "Origin Bound Certs-journal" "QuotaManager" "QuotaManager-journal" "README" "Secure Preferences" "Shortcuts" "Shortcuts-journal" "Top Sites-journal" "TransportSecurity" "Web Data-journal"

rcChromeBXD.txt  
"Application Cache" "Cache" "data_reduction_proxy_leveldb" "Extension State" "File System" "GPUCache" "IndexedDB" "JumpListIcons" "JumpListIconsOld" "Local Extension Settings" "Media Cache" "Pepper Data" "Platform Notifications" "Service Worker" "Session Storage" "Storage" "Thumbnails" "Web Applications"

En el archivo bat en, digamos, C:\Backup.

REM ChromeBak.bat
SET chromeprofdir=Google\Chrome\User Data\Default
SET /P rcChrmBIF=<C:\Backup\rcXcludes\rcChromeBIF.txt
SET /P rcChrmBXF=<C:\Backup\rcXcludes\rcChromeBXF.txt
SET /P rcChrmBXD=<C:\Backup\rcXcludes\rcChromeBXD.txt
robocopy "%LOCALAPPDATA%\%chromeprofdir%" "H:\ChromeBackup\%chromeprofdir%" %rcChrmBIF% /E /ZB /COPY:DAT /DCOPY:T /MT:4 /XJ /XF %rcChrmBXF% /XD %rcChrmBXD% /R:10 /W:2 /TBD /NP /V /TS /Log+:"H:\ChromeBackup\ChromeBackup.log"