Como copiar uma estrutura de diretórios sem copiar arquivos?

39

Eu tenho uma pasta com muitas subpastas e arquivos nelas. Existe uma maneira de copiar a estrutura de diretórios pasta e subpastas sem copiar os arquivos que eles contêm, usando cmd ou powershell?

    
por Rook 08.01.2013 / 22:32

9 respostas

39

Se você quiser copiar pastas vazias também.

xcopy C:\Folders D:\Folders /t /e

    
por 17.01.2013 / 09:58
28

Sim. XCOPY

XCopy source {destination}  /t

exemplo

xcopy C:\Folders D:\Folders /t

Mais sobre o xcopy pode ser encontrado aqui link

    
por 08.01.2013 / 22:43
16

Embora o XCOPY ainda funcione, o Windows Vista e versões posteriores incluem o ROBOCOPY, que possui mais recursos. A sintaxe geral para copiar uma árvore de pastas (incluindo pastas vazias) sem os arquivos é:

robocopy "A:\Source folder" "B:\Destination folder" /e /xf *

    
por 04.02.2015 / 15:41
2

Método do PowerShell que não requer copiar cada arquivo e, em seguida, excluí-los:

Copy-Item -LiteralPath '.\source' -Destination 'C:\path\to\copy' -Recurse -Filter {PSIsContainer -eq $true}

Ou mais sucintamente:

copy .\source C:\path\to\copy -r -fi PSIsContainer

O único truque interessante aqui é a filtragem na propriedade PSIsContainer , que é verdadeira para diretórios, mas não para arquivos.

    
por 27.01.2017 / 21:03
1

Veja o aplicativo 47folders, uma ferramenta Windows gratuita e prática, que faz exatamente o que você precisa com uma interface gráfica agradável.

AVISO:oantigolink( link ) agora (nov de 2017) leva ao anúncio de roupas. A última cópia válida do Internet Archive é aqui . O software ainda pode estar disponível em sites de download de freeware como este .

    
por 19.06.2013 / 18:15
0

Há provavelmente uma solução melhor, mas eu vejo estas:

  • Copie tudo e, em seguida, esvazie as pastas com um script.

  • Faça um script que copie tudo se não tiver extensão. A menos que você tenha arquivos sem uma extensão nas pastas, o que você não deveria, deveria funcionar, porque, bem. Pastas não possuem extensões. Algo que ficaria assim no pseudocódigo:

open_directory ($ path);
while ($ file = get_directory_content) {
if (vazio (get_file_extension ($ file)))) {) copy_the_file ($ file, $ destination);
}
}
close_directory;

    
por 08.01.2013 / 22:46
-1

até onde eu sei, existem softwares de terceiros que podem fornecer essa funcionalidade se você quiser fazer com o prompt de comando e o comando copy estiver disponível. tipo      help copy no cmd que fornece detalhes sobre como você copia arquivos através do cmd.
depois de copiar ir para a pasta através de cmd e executar o comando

del*.*
, que exclui arquivos porque as pastas não têm. personagem     
por 09.01.2013 / 06:35
-1

Use o PowerShell para fazer isso usando. Fazer cópia da pasta e depois Remove-Item -Path "C:\test\*.*" -recurse

    
por 03.11.2016 / 10:37
-1

Acabei de usar o freeware Miroirs, que copiava apenas pastas, não o conteúdo (embora isso seja uma opção).

link

    
por 27.01.2017 / 20:45