¿Cómo uso robocopy con una gran cantidad de archivos excluidos?

10

Quiero usar robocopy para mover una gran cantidad de archivos, excepto los que están en una lista blanca. La lista blanca contiene aproximadamente 150 archivos de diferentes nombres. Cuando copio y pego los nombres de archivo de la lista blanca en la línea de comando (usando el /xfparámetro), robocopy trunca la lista.

c:\test> robocopy src dest *.ext /xf exclude1.ext exclude2.ext exclude3.ext ... exclude 299.ext exclude300.ext

Resultados en:

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows

-------------------------------------------------------------------------------

  Started : Fri May 24 14:09:31 2013

   Source : C:\test\src\
     Dest : C:\test\dest\

    Files : *.ext

Exc Files : exclude1.ext
            exclude2.ext
            exclude3.ext
            ....
            ....
            exclude200.ext
            exclude201.ext
            exclu

y entonces:

'exclude250.ext' is not recognized as an internal or external command,
operable program or batch file.
'exclude251.ext' is not recognized as an internal or external command,
operable program or batch file.
'exclude252.ext' is not recognized as an internal or external command,
operable program or batch file.
'exclude253.ext' is not recognized as an internal or external command,
operable program or batch file.

Lamentablemente, los archivos de la lista blanca se seleccionan a mano y no se pueden filtrar con comodines.

¿Hay alguna forma de evitar esto?

Mono púrpura difuso
fuente

Respuestas:

13

Hay un límite en la longitud de la línea de comando (creo que es algo así como 2048 caracteres) en Windows.

Debe generar un archivo de trabajo con un pequeño subconjunto de la lista de exclusión especificada (usando el /save:filenameargumento) para obtener la sintaxis, editar el archivo para incluir la lista completa y luego usar el /job:filenameargumento para ejecutarlo.

Como referencia, la documentación de esta herramienta se puede encontrar aquí.

Falcon Momot
fuente
0

Resulta que la sintaxis del archivo de trabajo de robocopy no es tan complicada.

Para su situación específica, puede lograr lo que desea creando un archivo de trabajo de robocopy con el siguiente contenido:

/XD
exclude1.ext
exclude2.ext
exclude3.ext
....

Si también desea hacer lo mismo con los archivos, su archivo de trabajo de robocopy se vería así:

/XD
exclude1.ext
exclude2.ext
exclude3.ext
....

/XF
file1.ext
file2.ext
file3.ext
....

Al usar la misma lógica, puede mover cualquier otra opción desde la línea de comandos al archivo de trabajo.

Fara Importanta
fuente
0

intente usar comodines después del / XF filename1 * .ext filename2 * .ext filename3 * .ext Esto solo funcionará si sabe que el nombre de archivo es único en toda la estructura. Puede cambiar la convención de nomenclatura de los archivos que desea excluir para evitar esta limitación.

Tryp
fuente