Como copiar arquivos de árvore de pastas caindo todas as pastas com Robocopy?
-
19-09-2019 - |
Pergunta
Eu tenho a seguinte estrutura de pastas:
FolderA
--Folder1
--Folder2
--Folder3
...
--Folder99
Pastas 1 a 99 têm arquivos neles.
Tudo que eu quero fazer é copiar todos os arquivos em uma pasta, basicamente, fazer uma cópia FolderA, e acabar com pastas 1-99 manter todos os arquivos.
Eu gostaria de fazê-lo com Robocopy de cmd.exe se possível (Windows Server 2008)
Solução
robocopy
Por quê? É uma boa ferramenta para uma tarefa específica, mas este não é o único.
Você pode simplesmente usar o que cmd
já dá-lhe:
for /r %f in (*) do @copy "%f" target
Este será, essencialmente, "achatar" a sua hierarquia de diretório. for /r
andará uma árvore de diretórios de forma recursiva, procurando nomes de arquivos que correspondam ao padrão determinado. Você também pode especificar o diretório para começar em:
for /r FolderA %f in (*) do @copy "%f" target
Dentro do loop é apenas uma simples cópia do arquivo em uma pasta especificada.
Outras dicas
Robocopy é uma grande ferramenta ... quando você tem um trabalho que ele pode manipular. Por que não usar xcopy?
Se você tiver duas unidades você pode apenas usar xcopy:
XCOPY C:\*.* D:\NewFolder\ /S
Ou uso XXCOPY para uma unidade:
XXCOPY C:\*.* C:\NewFolder\ /S /CCY
Get-ChildItem -Path source -Recurse -File | Move-Item -Destination dest