Como usar o Robocopy para copiar uma estrutura de pastas em todas as pastas (sub) localizadas em um diretório?

1

Existe alguma maneira para eu pegar rapidamente uma estrutura de pasta vazia que criei na minha área de trabalho e copiá-la para 488 outras pastas, todas localizadas em uma unidade de rede, mas na mesma pasta?

Minha principal dificuldade com isso é que eu quero que a estrutura de pastas que criei seja colocada nas subpastas de uma pasta na rede. Existem 488 pastas onde minha estrutura deve ser copiada. Todos eles contêm pastas e arquivos adicionais, que eu não quero ter nenhum efeito. Existe uma maneira de definir a pasta de destino do robocopy como 1 nível abaixo ou mais profundo que a pasta de destino? Semelhante a / LEV: n mas invertido essencialmente?

Eu tenho visto alguns posts mencionando recursão no que eu acredito serem situações similares, mas eu não sei como executar uma função recursiva se isso for possível.

    
por small3687 30.01.2013 / 22:13

1 resposta

2

Não tenho certeza se entendo todos os aspectos da sua pergunta, mas aqui vamos nós.

Salve este código em um arquivo CMD e personalize o caminho de origem, destino e robocopy.exe, em que destino significa a pasta raiz que contém suas subpastas 488.

@echo off
SET "source=C:\Users\zsmall\Desktop\Attachment Structure"
SET "dest=C:\Users\zsmall\Desktop\CustomTest"    
DIR /A:D /B %dest% > folders.txt    
for /f "delims=" %%G in (folders.txt) do (
C:\Windows\System32\robocopy.exe "%source%" "%dest%\%%G" /copy:DAT /E /W:2 /R:2 /MT:8
)
pause

O que faz

  • lista todas as pastas (sem subpastas) da sua pasta de destino e grava os nomes em um arquivo de texto
  • percorre todas as pastas desse arquivo de lista
  • executa um comando robocopy com a pasta atual como destino
    (a fonte é sempre a mesma pasta)
  • O
  • robocopy copia todas as pastas, subpastas e arquivos, incluindo dados, atributos e registros de data e hora

Para informações sobre os parâmetros usados, veja aqui:

Não tente fazer isso sem salvar a lista primeiro em um arquivo de texto. Ou você pode acabar como eu, que estava criando milhares de subpastas com o mesmo nome.

    
por 31.01.2013 / 00:28