web-dev-qa-db-fra.com

Comment copier une structure de répertoires sans copier de fichiers?

J'ai un dossier avec beaucoup de sous-dossiers et de fichiers en eux. Existe-t-il un moyen de copier la structure du dossier et des sous-dossiers sans copier les fichiers qu’ils contiennent, en utilisant cmd ou powershell?

43
Rook

Si vous souhaitez également copier des dossiers vides.

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

41
Michael Mantion

Ouaip. XCOPY

XCopy source {destination}  /t

exemple

xcopy C:\Folders D:\Folders /t

pour en savoir plus sur xcopy, cliquez ici http://ss64.com/nt/xcopy.html

28
BroScience

Bien que XCOPY fonctionne toujours, Windows Vista et les versions ultérieures incluent ROBOCOPY, qui comporte davantage de fonctionnalités. La syntaxe générale pour copier une arborescence de dossiers (y compris les dossiers vides) sans les fichiers est la suivante:

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

18
Theodore

Méthode PowerShell qui ne nécessite pas de copier chaque fichier, puis de les supprimer:

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

Ou plus succinctement:

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

La seule astuce intéressante ici est le filtrage de la propriété PSIsContainer, qui est vrai pour les répertoires mais pas les fichiers.

2
Ben N

Regardez l’application 47folders, outil Windows gratuit et pratique, fait exactement ce dont vous avez besoin avec Nice GUI.  enter image description here

AVERTISSEMENT: Ancien lien ( http://47foldersapp.com/ ) maintenant (nov. 2017) mène à une publicité pour les vêtements. La dernière bonne copie d’Internet Archive est ici . Des logiciels peuvent toujours être disponibles sur des sites de téléchargement de logiciels gratuits, tels que celui-ci .

1
andymcgregor

Utilisez PowerShell pour le faire avec. Créer une copie du dossier, puis Remove-Item -Path "C:\test\*.*" -recurse

0
user1586957

Je viens d'utiliser le logiciel gratuit Miroirs, qui copiait très simplement les dossiers, pas le contenu (bien que ce soit une option).

http://www.scanialabs.com/Products/Miroirs/Miroirs.aspx

0
user263693

Il y a probablement une meilleure solution, mais je verrais ceci:

  • Copiez tout, puis videz les dossiers avec un script.

  • Faites un script qui va tout copier s'il n'a pas d'extension. Sauf si vous avez des fichiers sans extension dans les dossiers, ce qui ne devrait pas être le cas, cela devrait fonctionner, car bien. Les dossiers n'ont pas d'extensions. Quelque chose qui ressemblerait à ceci dans le pseudocode:

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

0
Ariane