msbuild - varias - Usando xcopy para copiar archivos de varios directorios a un directorio
robocopy cortar archivos (3)
¿Es posible usar xcopy para copiar archivos de varios directorios en un directorio usando solo un comando de xcopy?
Suponiendo que tengo el árbol de directorios
root / Source / Sub1 / Sub2
Quiero copiar todos los archivos .xml del directorio raíz / Origen, incluida la subcarpeta, a la raíz / Destino. No quiero copiar la estructura de carpetas, solo los archivos.
Como dijo DandDI, no necesitas xcopy. Para la declaración ayuda mucho. Sin embargo, no es necesario indicar también el resultado del proceso del comando dir, este comando ayuda mejor
for /R c:/source %f in (*.xml) do copy "%f" x:/destination/
Por cierto, cuando lo usa de un archivo por lotes, necesita agregar% de repuesto delante de la variable% f, por lo tanto, su línea de comando debería ser;
for /R c:/source %%f in (*.xml) do copy %%f x:/destination/
cuando lo usas dentro de un lote
- Debe rodear a% f con comillas dobles, de lo contrario no podrá copiar los nombres de los archivos con espacios
La respuesta a este problema, que creo que es "Cómo reunir todos los archivos de todos los subdirectorios pequeños en un solo directorio", consiste en descargar una pieza de software llamada XXCOPY. Esto está disponible gratuitamente a través de XXCOPY.COM y, afortunadamente, hay una versión gratuita no comercial. Una de las preguntas frecuentes sobre la facilidad de ayuda en XXCOPY.COM es efectivamente "¿Cómo reúno todos mis archivos en un directorio" y le indica qué conmutador debe usar? XXCOPY es una forma segura de hacerlo y viene en un archivo .zip, por lo que descomprimirlo puede no ser tan sencillo, pero tampoco es particularmente difícil. Hay un programa de descompresión llamado ZipGenius disponible a través del sitio web ZipGenius.it, por lo que tal vez antes de descargar XXCOPY y luego descargar ZipGenius, sea un wammy doble a pequeña escala (!)
No necesitas xcopy para eso. Puede obtener una lista de todos los archivos que desea y realizar la copia de esa manera.
Por ejemplo, en el símbolo del sistema de Windows XP:
for /f "delims==" %k in (''dir c:/source/*.xml /s /b'') do copy "%k" x:/destination/
El / s va a todos los subdirectorios y el / b muestra solo el nombre y la ruta de los archivos. Cada entrada de archivo se asigna a la variable% k, luego el comando de copia copia el archivo al destino. El único truco es asegurarse de que el destino no sea parte de la fuente.