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

48

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

Tour
la source

Réponses:

45

Si vous souhaitez également copier des dossiers vides.

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

Michael Mantion
la source
1
correct, /edevrait être utilisé aussi.
1
XCOPY Construit dans Powershell par défaut et fonctionne parfaitement.
BenCes
29

Ouaip. XCOPY

XCopy source {destination}  /t

Exemple

xcopy C:\Folders D:\Folders /t

Pour plus d'informations sur xcopy, cliquez ici http://ss64.com/nt/xcopy.html

BroScience
la source
5
Vous devez ajouter /eà copier également les dossiers vides
18

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 *

Théodore
la source
3

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 sur la PSIsContainerpropriété, ce qui est vrai pour les répertoires mais pas les fichiers.

Ben N
la source
C'est super rapide aussi!
Regmi
1

Regardez l’application 47folders, outil Windows gratuit et pratique, fait exactement ce dont vous avez besoin avec une interface graphique agréable. entrez la description de l'image ici

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

andymcgregor
la source
0

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. À moins que vous n'ayez des fichiers sans extension dans les dossiers, vous ne devriez pas, cela devrait fonctionner, parce que, 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;

Ariane
la source
Malheureusement, nous avons des fichiers sans extensions. De .placeholders pour le dépôt de code à des fichiers de données spécifiques.
Rook
Oh. Bien. Peut-être qu'il y a une chose si (c'est un dossier), alors. Mais euh. La chose xcopy ci-dessus semble être la bonne chose pour vous alors. Sinon, vous pouvez exécuter un script pour 1. copier tous les dossiers et 2. vider tous les dossiers. Ou quelque chose. Mais c'est ... Long. xD
Ariane
0

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

utilisateur1586957
la source
-1

pour autant que je sache, il existe des logiciels tiers qui peuvent fournir cette fonctionnalité si vous souhaitez utiliser l'invite de commande, puis copier la commande est disponible. type d' aide copie dans cmd, qui fournit des détails sur la manière de copier des fichiers via cmd.
après la copie, allez dans le dossier via cmd et exécutez la commande

del *. *
qui supprime les fichiers car les dossiers n’ayant pas. personnage

vishal
la source
3
Supprime les fichiers, mais qui dit que les noms de dossiers ne peuvent pas également contenir un point / point?
Karan