
Quiero usar robocopy para mover una gran cantidad de archivos, excepto aquellos que están en una lista blanca. La lista blanca contiene aproximadamente 150 archivos con nombres diferentes. Cuando copio y pego los nombres de archivos de la lista blanca en la línea de comando (usando el /xf
pará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 luego:
'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 cuidadosamente y no se pueden filtrar mediante comodines.
¿Hay alguna manera de solucionar esto?
Respuesta1
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:filename
argumento) para obtener la sintaxis, editar el archivo para incluir la lista completa y luego usar el /job:filename
argumento para ejecutarlo.
Como referencia, la documentación de esta herramienta se puede encontrar aquí.
Respuesta2
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 robocopia se vería así:
/XD
exclude1.ext
exclude2.ext
exclude3.ext
....
/XF
file1.ext
file2.ext
file3.ext
....
Al utilizar la misma lógica, puede mover cualquier otra opción desde la línea de comando al archivo de trabajo.
Respuesta3
intente usar comodines después de /XF nombre de archivo1*.ext nombre de archivo2*.ext nombre de archivo3*.ext Esto sólo 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.