xcopy / excluir problema
-
10-07-2019 - |
Pregunta
Estoy intentando ejecutar xcopy que copia archivos excluyendo .obj, etc. Lo que estoy viendo es que Microsoft.Practices.ObjectBuilder.dll no se copia cuando mi archivo excludes.txt contiene .obj como extensión. Cuando se elimina .obj, I Microsoft.Practices.ObjectBuilder.dll se copia correctamente. Sin embargo, esto no le sucede a otros dlls.
¿Alguien tiene alguna idea de por qué sucedería esto?
¡Gracias!
Lenik
Solución
Supongo que porque la subcadena .obj se encuentra en el nombre Microsoft.Practices **. Obj ** ectBuilder.dll y dado que Windows no distingue entre mayúsculas y minúsculas, la excluirá.
Otros consejos
Sí, xcopy es tonto así.
Haz esto:
dir /b *.obj >excludes.txt
xcopy * /exclude:excludes.txt targetdir
aunque esto todavía tendrá el problema a veces.
Si tuviera un archivo llamado practicas.ob j, por ejemplo, no copiaría eso, pero tampoco podría copiar su Microsoft. Practices.Obj ectBuilder.dll
Un truco útil es que si especifica / s en el directorio, obtiene la recursividad y la ruta completa, luego, si especifica el directorio fuente completamente en la xcopy, las exclusiones deberán coincidir desde comienzo:
dir /s /b *.obj >excludes.txt
xcopy c:\sourcedir\* /exclude:excludes.txt \targetdir
Ahora Microsoft.Practices.ObjectBuilder.dll solo no se copiará si tiene un archivo Microsoft.Practices.obj en el mismo directorio. ¿Conseguirlo?
La respuesta es lo que puede obtener escribiendo:
xcopy /?
A saber:
/ EXCLUDE: archivo1 [+ archivo2] [+ archivo3] ...
Especifica una lista de archivos que contienen cadenas. Cada cuerda debe estar en una línea separada en los archivos. Cuando alguno de los las cadenas coinciden con cualquier parte de la ruta absoluta del archivo a ser copiado, ese archivo se excluirá de la copia. por ejemplo, especificar una cadena como \ obj \ o .obj excluirá todos los archivos debajo del directorio obj o todos los archivos con el extensión .obj respectivamente.