Se você quiser copiar pastas vazias também.
xcopy C:\Folders D:\Folders /t /e
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?
Se você quiser copiar pastas vazias também.
xcopy C:\Folders D:\Folders /t /e
Sim. XCOPY
XCopy source {destination} /t
exemplo
xcopy C:\Folders D:\Folders /t
Mais sobre o xcopy pode ser encontrado aqui link
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 *
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.
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(
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;
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
Use o PowerShell para fazer isso usando. Fazer cópia da pasta e depois
Remove-Item -Path "C:\test\*.*" -recurse
Acabei de usar o freeware Miroirs, que copiava apenas pastas, não o conteúdo (embora isso seja uma opção).
Tags command-line windows-7