Pergunta

Eu tenho um diretório com vários subdiretórios com arquivos.
Como posso copiar todos os arquivos nos subdiretórios para um novo local?

Editar: eu não quero copiar os diretórios, apenas os arquivos ...

Como este ainda está no XP, eu escolhi o abaixo solução:

 for /D %S IN ("src\*.*") DO  @COPY "%S\" "dest\"

Obrigado!

Foi útil?

Solução

Ok. Com sua edição que diz que você não quer que a estrutura de diretórios, eu acho que você vai querer usar algo como isto:

for /F "usebackq" %s IN (`DIR /B /S /A-D SrcDir`) DO @(
    XCOPY %s DestDir\%~nxs
)

Outras dicas

O comando Xcopy deve ajudar aqui.

XCOPY /E SrcDir\*.* DestDir\

Ou se você não quer qualquer um dos arquivos em SRCDIR, apenas os sub-diretórios, você pode usar XCOPY em conjunto com o comando para:

FOR /D %s IN (SrcDir\*) DO @XCOPY /E %s DestDir\%~ns\

robocopy "c:\source" "c:\destination" /E

Se eu entendi bem você tem uma árvore de diretórios grande e você quer todos os arquivos dentro dele para ser em um diretório. Se isso é correto, então eu posso fazê-lo em duas linhas:

dir /s /b "yourSourceDirectoryTreeHere" > filelist.txt
for /f %f in (filelist.txt) do @copy %f "yourDestinationDirHere"

Em um arquivo de lote vs. a mudança de linha de comando% f para %% f

Se você quiser manter a mesma estrutura de pastas na outra extremidade, sons tão simples como XCOPY

xcopy c: \ old \ * * d:. \ Nova \ / s

Use / e em vez de / s se você quiser diretórios vazios copiados também.

 for /D %S IN ("src\*.*") DO  @COPY "%S\" "dest\"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top