en utilisant la ligne de commande, je voudrais copier un répertoire dans un autre. Par exemple, il y a un répertoire C:/test
et C:/test2
.
Je voudrais copier C:/test
dans C:/test2
afin que le résultat seraC:/test2/test
Tout ce que j'ai trouvé jusqu'ici ne fera que copier les fichiers et les dossiers contenus C:/test
dans C:/test2
, mais en laissant de côté le répertoire parent.
windows
command-line
Scott Chamberlain
la source
la source
Réponses:
Essayez d'utiliser
XCOPY
avec le/E
commutateur. Plus d'infos ici .Je n'ai pas eu à accéder à cette information de mon cerveau depuis des années !
MISE À JOUR
La documentation indique qu'elle copie tous les fichiers et sous-répertoires du répertoire source (ce qui signifie que le répertoire parent n'est pas créé). Vous devez donc créer
test
enC:\test2
premier, puis utiliserXCOPY
.la source
robocopy /CREATE /COPYALL /DCOPY:T src dst
simplement le dossier et les fichiers vides, tout en conservant tous les horodatages et autres attributs.test
encore être créé.md test
et ensuite utiliserxcopy
était trivialement évident.copy
dossier qui ne crée pas de nouveau dossier et ne copie pas les contenus qu’il contient.Voici des infos sur XCOPY [ 1 , 2 ]
la source
Utilisez ROBOCOPY si vous créez des scripts de sauvegarde. xcopy est obsolète et ne sera probablement plus utilisé dans un proche avenir. Robocopy peut faire tout ce que xcopy peut faire. Il est également plus flexible et fiable. Créer des scripts avec robocopy les protégera de l'avenir.
Utilisez robocopy pour copier facilement des dossiers. La commande robocopy remplace la commande xcopy. Il peut rapidement copier des dossiers entiers sans avoir à se soucier de la définition du contenu. Par exemple, pour copier tout le contenu du répertoire C: \ tools dans le nouveau dossier D: \ backup \ tools, entrez la commande suivante:
Le modificateur / e indique à robocopy d'inclure tous les sous-répertoires. Cela inclut les dossiers vides. robocopy copiera automatiquement les fichiers cachés et système. Il créera de nouveaux répertoires s’ils n’existent pas à l’emplacement cible.
Mettre en miroir un répertoire. La mise en miroir d'un répertoire est idéale pour effectuer des sauvegardes. L'option miroir de robocopy copiera tout le contenu de la source vers la destination. Il supprimera alors tout ce qui existe à la destination et n’existe pas à la source. Cela garantit que votre sauvegarde ne contient que les dernières versions de vos fichiers. Par exemple, pour mettre en miroir C: \ Utilisateurs \ Mes documents sur D: \ backup \ Mes documents, entrez les informations suivantes: [4]
Cette fonction préservera toutes les autorisations des fichiers originaux.
Activer le redémarrage. Vous voudrez peut-être inclure la possibilité de redémarrer le processus si la connexion est interrompue en cours de copie.
Enregistrez le processus de copie. Robocopy vous permet de créer un fichier journal. Cela peut vous aider à identifier des problèmes ou à créer une archive de ce qui a été copié.
Le modificateur / log + ajoutera le fichier journal existant au lieu de l'écraser. Si vous préférez simplement écraser l'ancien fichier journal, utilisez /log:.txt.
la source
Je recommande robocopy sur xcopy , car il a beaucoup plus d' options, y compris la tenue intacte horodatages, que je trouve essentiel.
Robocopy doit être ajouté sur XP / 2003, mais il est standard à partir de Vista.
En fait, j'utilise habituellement xxcopy , mais la version 64 bits n'est pas gratuite.
la source
robocopy
est un programme Windows. La question concernait le DOS.Par exemple, si vous devez copier
E:
des données deH:
lecteur sur un lecteur (disque dur externe) via une ligne de commande ou à partir de l'environnement de commande xboot.la source
Si la question initiale est ce à quoi je cherchais une réponse, alors moi-même et personne d’autre, c’est une solution claire.
Ce que je recherche, c’est de copier le répertoire test dans le répertoire test2 sans avoir à le taper à nouveau. Quelque chose comme
où
d:\test2\test
n'existe pas avant la copie mais après. Cela permettrait d’économiser sur le test de saisie en échec la deuxième fois dans le chemin de destination. La commande ci-dessus copiera tous les fichiers et tous les répertoires dans test2 mais ne créera pas le répertoire de test.Jusque là
C'est vraiment le seul moyen que j'ai trouvé pour faire ce travail. Là encore, si vous rencontrez des problèmes de frappe, rien ne garantit que les répertoires source et de destination seront identiques.
Une alternative pour corriger ceci est
Ceci définit le répertoire de destination dans la
mydir
variable puis utilise cette variable à la fois dans le chemin source et le chemin de destination. Si vous tapez mal la variable, vous obtiendrez une erreur ou le répertoire de destination aura probablement%
au début et à la fin.Il est plus long de taper mais moins de chances d’obtenir les mauvais noms. Ils seront remarquables.
la source
xcopy /ievy c:\test d:\test2\test
de conserver l’arborescence des répertoires, et dansset mydir=test&xcopy /isvy c:\%mydir% c:\test2\%mydir%
seulement 1 & suffira, car le résultat de la définition d’une valeur est toujours réussi.Où
SWITCHES
peut être:Pour copier la structure de répertoires complète:
/hiev
Pour écraser les fichiers de la destination (si le dossier de destination existe déjà):
/hievry
Pour écraser et copier avec ACL + Attribute:
/hievxok
Le plus adapté à votre cas:
xcopy /hievry C:\test C:\test2\test
la source
Dans une situation similaire, je devais copier un certain nombre de dossiers, y compris les noms de dossier, vers un emplacement de destination. J'espérais que cette question marquée comme étant résolue aiderait, mais ce n'est vraiment pas le cas.
Premièrement, il y a certainement des occasions où on aurait besoin de cette capacité et je me suis heurté à l'une d'elles lorsque je devais copier des dossiers de C: \ Windows \ Assembly \ GAC_MSIL. L'Explorateur Windows refuse d'afficher ce dossier, vous devez donc utiliser une invite de commande.
Si vous connaissez le dossier GAC, vous saurez que les noms de dossier ne sont pas triviaux et qu'il est facile de se tromper si vous vous trompez.
Donc, la création préalable du répertoire n’est pas vraiment une option - à moins que vous utilisiez un script - que j’ai finalement utilisé, car c’était la seule solution réelle.
Commencez par vider les dossiers que vous souhaitez copier dans un fichier temporaire (ceci est généralement basé sur un modèle, par exemple:
Puis passez en boucle sur les entrées du dump et copiez-les dans la destination. Xcopy se chargera de créer un dossier si vous terminez l'argument de destination avec une barre oblique inverse (\)
Placez ces deux commandes dans un fichier de commandes et exécutez-les.
Maintenant, si seulement xcopy ou robocopy a cela intégré.
la source
XCOPY SourceDrive: DestinationDrive: / S / E
la source
/S /E
drapeaux)Je suis venu à une réponse fonctionnelle alternative pour votre question.
Tout d'abord, l'utilisation
FORFILES
de/S
paramètre avec , confère que chaque sous-répertoireC:\test
sera atteint.Deuxièmement, avec
/C
paramètre, il est possible de démarrer une chaîne de commandes avec des variables natives, ce qui permet de créer les répertoires identiques sur la destination, puis de copier les fichiers à l'intérieur, en utilisant deux structures conditionnelles.La première structure conditionnelle
@isdir==TRUE
(assurez-vous d’utiliser des majuscules), permet d’obtenir les répertoires uniquement à partir de la source, puis de les créer à la destination avecMKDIR [path]\@relpath
à la fin.Enfin, le second s'assure qu'il travaille avec des fichiers uniquement avec
@isdir==FALSE
, puis la commande COPY exécute simplement le travail, en obtenant tous les fichiers atteints par la commande FORFILES, en définissant[path]@relpath
la destination, pour copier les fichiers dans les répertoires qui viennent d'être créés.J'espère que cela aide tout le monde ici.
la source
Cela le fera à partir de l'interface graphique, je ne sais pas comment ils le font.
"... petit programme vous permettra de sélectionner le" à partir du répertoire "et" dans le répertoire ", et il continuera à copier UNIQUEMENT la structure du répertoire."
http://www.rjlsoftware.com/software/utility/treecopy/
la source