Copie todos os arquivos de uma lista de locais de pastas

Copie todos os arquivos de uma lista de locais de pastas

Eu tenho uma lista de locais de pastas das quais gostaria de copiar todos os arquivos contidos nesses locais. A lista de locais de pastas é armazenada em uma linha separada em um arquivo de texto (.txt). Todos os arquivos devem ser copiados para o mesmo local.

Como posso concluir este exercício usando esta lista de pastas em combinação com uma função de cópia no prompt de comando?

Responder1

Considerando um arquivo com conteúdo semelhante contendo uma lista de diretórios como:

c:
c:\users 
c:\anyotherfolder

xcopydentro de um forloop fará o trabalho :)

for /f %a in (list.txt) do xcopy /e %a\* c:\destination_folder\

(copiando toda a árvore de diretórios (devido a /e) )


Você deve adicionar um extra %ao nome da variável se quiser mantê-la e executá-la em um .batarquivo separado.

Responder2

Peguei o código de Elvins e o desenvolvi ligeiramente para resolver o problema de inclusão de espaços em caminhos e nomes de pastas.

O comando For Do agora usa um arquivo CSV para obter os caminhos das pastas; foi então necessário incluir a "delims=,"opção no comando For.

for /f "delims=," %a in (D:\Batch_Files\Test_Bench\Folders_List.csv) do copy "%a\*" D:\Batch_Files\Test_Bench\Paste_All_The_Files_Here

Os registros delimitados por vírgula permitiram For /facessar os locais que contêm espaços, mas apenas se o token %a\*estiver agrupado entre " ".

informação relacionada