167 votes

copier tout le contenu d'un dossier dans un autre dossier à l'aide d'un fichier batch ?

J'ai un dossier dans C:\Folder1

Je veux copier tout le contenu de Folder1 à un autre endroit, D:\Folder2

Comment puis-je faire cela en utilisant un fichier batch ?

198voto

eHussain Points 903

xcopy.exe est la solution ici. Elle est intégrée à Windows.

xcopy /s c:\Folder1 d:\Folder2

Vous trouverez d'autres options sur le site http://www.computerhope.com/xcopyhlp.htm

3 votes

Bonjour Hussain, j'ai essayé xcopy /s c : \Folder1 d : \Folder2 dans le fichier batch, mais cela ne fonctionne pas pour moi. Pouvez-vous me guider davantage ?

0 votes

Bonjour, il se peut que vous n'ayez pas ce xcopy sur votre machine Cependant, vous pouvez télécharger le fichier batch à partir d'ici brothersoft.com/xcopy-177904.html

4 votes

Si vous voulez copier aussi les sous-répertoires vides, vous devez utiliser les drapeaux /s /e.

53voto

mghicks Points 848

Si vous avez une robocopie,

robocopy C:\Folder1 D:\Folder2 /COPYALL /E

autrement,

xcopy /e /v C:\Folder1 D:\Folder2

2 votes

Si cela copie le contenu de Dossier1, que faites-vous si vous voulez copier le dossier lui-même ?

4 votes

@KyleDelaney inclure le nom du dossier source dans la destination, par exemple "xcopy /e /v". C:\Folder1 D:\Folder2\Folder1\ "

1 votes

Notez que RoboCopy utilise le caractère \ comme caractère d'échappement. (CMD ne le fait pas) si vous essayez de passer dans un chemin cité avec un espace et un barre oblique finale comme "C:\My Folder\" vous pourriez avoir une mauvaise surprise. Je vous recommande de lire cette page SS64 très attentivement. Pour un voyage complet dans le trou du lapin "qu'est-ce qu'un caractère d'échappement dans CMD", voir Échapper les guillemets doubles dans le lot script .

28voto

Kingzel Points 348

Je vois beaucoup de réponses suggérant l'utilisation de xcopy. Mais c'est inutile. Comme la question mentionne clairement que l'auteur veut que le CONTENU DU DOSSIER et non le dossier lui-même soit copié dans ce cas, nous pouvons - :

copy "C:\Folder1" *.*  "D:\Folder2"

C'est tout. xcopy peut être utilisé pour si un sous-répertoire existe dans C:\Folder1

1 votes

Cela ne fonctionne pas si le dossier vers lequel vous copiez n'existe pas encore (je crois), vous pouvez donc ajouter md D:\Folder2

6 votes

Mon copy (invite de commande Windows 10) m'indique que la syntaxe est incorrecte. Ce qui suit serait la syntaxe correcte : copy "C:\Folder1\*.*" "D:\Folder2"

25voto

ghiboz Points 2308

Si vous voulez supprimer le message qui indique si la destination est un fichier ou un dossier, il suffit d'ajouter une barre oblique :

xcopy /s c:\Folder1 d:\Folder2\

0 votes

Petit plus : sous DOS, pour copier de la racine d'un lecteur à un autre, les slashs d'échappement ne doivent pas être présents. Par exemple xcopy /s C: D:

13voto

Jordan Points 340

RoboCopy n'a pas fonctionné pour moi, et il y a quelques bonnes solutions ici, mais aucune n'explique les commutateurs XCopy et ce qu'ils font. Vous avez également besoin de guillemets si votre chemin contient des espaces.

xcopy /i /e " C:\temp\folder 1" " C:\temp\folder 2"

Voici la documentation de Microsoft :

Documentation sur XCopy MS

/s: Specifies to include subdirectories. Excludes empty subdirectories
/e: Copies all subdirectories, even if they are empty
/i: specifies the destination is a folder (Otherwise it prompts you)

1 votes

Xcopy ms doc est peut-être la deuxième information la plus importante de cette page :) Merci.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X