2008-10-29 84 views

Respuesta

95
mkdir targetDir 
for /r %x in (*.dll, *pdb) do copy "%x" targetDir\ 

Use/Y al final del comando anterior si está copiando varios archivos y no desea seguir respondiendo "Sí".

+0

nice one. no estaba seguro de la sintaxis. – Ady

+0

sin la coma –

+13

use "%% x" en un archivo por lotes – bob

-2

No conozco ninguna herramienta de línea de comandos que lo haga directamente, pero podría crear una secuencia de comandos por lotes para recorrer las subcarpetas y copiar los archivos que necesita.

Sin embargo, puede terminar con archivos con nombres de archivo duplicados si los coloca todos en la misma carpeta.

-1
@echo off 
if %1'==' goto usage 
if %2'==' goto usage 
if %3'==' goto usage 
for /D %%F in (%1\*) do xcopy %%F\%2 %3 /D /Y 
for /D %%F in (%1\*.) do call TreeCopy %%F %2 %3 
goto end 
:usage 
@echo Usage: TreeCopy [Source folder] [Search pattern] [Destination folder] 
@echo Example: TreeCopy C:\Project\UDI *.xsd C:\Project\UDI\SOA\Deploy\Metadata 
:end 
35

comando XCOPY

ejemplo de la carpeta de copia de forma recursiva:

mkdir DestFolder 
xcopy SrcFolder DestFolder /E 

(como se indica más adelante en el comentario siguiente WIKI que mandan se puso a disposición puesto que DOS 3,2)

+2

+1. Sin embargo, tenga en cuenta que XCOPY no está solo en Windows 7 ... ha existido desde siempre (según http://en.wikipedia.org/wiki/XCOPY, desde DOS 3.2) –

+2

Puede ser útil para alguien pero no lo hace parece ajustarse a ** "No quiero volver a crear la jerarquía de carpetas en la carpeta de destino." ** desde OP. – nrodic

+0

@nrodic, si lo entiendo correctamente, esta expectativa se relaciona con evitar la recreación de la jerarquía de carpetas fuente manualmente, por lo que el comando anterior copia el SrcFolder con toda la estructura de carpetas recursivamente (y archivos). – Bronek

0

Asegúrese de tener las citas correctas si tiene espacios en su camino.

Este es mi evento de postconstrucción para mi servidor de compilación TFS (es por eso que hay "%%"). Necesitaba copiar todos los archivos de prueba.

if not exist "$(TargetDir)..\SingleFolderOutput" mkdir -p "$(TargetDir)..\SingleFolderOutput" 

for /r **%%x** in (*.dll, *.pdb, *.xml, *.xaml, *.exe, *.exe.config) do xcopy **"%%x"** "$(TargetDir)..\SingleFolderOutput" /Y 
Cuestiones relacionadas