Necesito obtener robocopy para excluir cualquier archivo cuya ruta contenga un directorio con un nombre en particular. Por ejemplo, "bar":
c:\foo\bar\a.txt
c:\bar\c.txt
d:\baz\bar\flub\d.txt
debe excluirse, pero no
c:\foo\barf\b.txt
Estas son las cosas que probé, cada una de las cuales fue rechazada por robocopy:
/XD \bar\
/XD *\bar\*
/XD *^\bar^\*
¿Algunas ideas?
Si está probando diferentes filtros de directorio, asegúrese de borrar su carpeta de destino entre cambios.
Un problema para mí fue que no me di cuenta de que el cambio de directorio de ignorar también se aplica a las carpetas de destino. Ejecuté robocopy con
/MIR
y cambié el directorio de origen, y mi directorio de destino se actualizó como se esperaba. Entonces noté que tenía carpetas de archivo que no quería, así que agregué/XD archive
, ¡pero mi carpeta de destino todavía tenía carpetas de archivo!Después de jugar con comodines e incluir / excluir los
\
s, finalmente intenté eliminar la carpeta de destino y volver a ejecutar el script, ¡esta vez no tenía las carpetas de archivo! Aquí está el comando que estaba ejecutando, con los nombres de directorio cambiados para proteger a los inocentes:fuente
Lo siento, pero de acuerdo con la documentación en https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy :
Entonces, esto significa específicamente que el comodín se puede usar en el indicador / xf pero no en el indicador / xd.
fuente