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?

Réponses:


45

Si vous souhaitez également copier des dossiers vides.

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


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


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 *


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.


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 .


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;


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



-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


3
Supprime les fichiers, mais qui dit que les noms de dossiers ne peuvent pas également contenir un point / point?
Karan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.