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

¿Fue útil?

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?

XCOPY es en desuso ahora de todos modos, así que dudo que las cosas se arreglen. Eche un vistazo a ROBOCOPY: está integrado en Vista y viene en el kit de recursos para 2003 y XP .

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top