Si vous devez copier des fichiers et des dossiers sous Windows, xcopy reste une option très solide : elle gère les sous-répertoires, propose pas mal de commutateurs, et convient aussi bien à une copie “rapide” qu’à des cas plus cadrés (fichiers modifiés, logs, exclusions…). Tout se fait depuis l’invite de commande, sans interface graphique (pratique quand on dépanne vite ou qu’on automatise).
Dans ce tutoriel, on va voir xcopy pas à pas : commande de base, options utiles, pièges qu’on rencontre souvent, et façons simples de vérifier que tout est bien arrivé. (Spoiler : les erreurs de chemins reviennent plus que prévu.)

En Bref : lancez une commande xcopy depuis l’invite de commande pour copier un dossier (et ses sous-dossiers) vers un emplacement cible. Résultat attendu : une arborescence identique au départ, avec les fichiers mis à jour selon l’option choisie.
| Durée estimée | 25 à 40 min |
|---|---|
| Niveau | Débutant → intermédiaire |
| Outils nécessaires | Windows (CMD), éventuellement PowerShell pour vérifier |
| Prérequis | Accès aux dossiers source et destination |
Étape 1 : Identifier la source et la destination (et éviter les erreurs de chemins)
Avant de lancer xcopy, verrouillez deux points : le chemin source et le chemin de destination. C’est souvent là que tout se joue : dossier inexistant, guillemets oubliés, différence entre “/” et “\”, ou chemin incomplet.
1) Choisissez clairement la source
La source peut être un dossier (avec ou sans sous-dossiers) ou un fichier. Pour copier un dossier complet, pensez en termes d’arborescence : vous partez d’un répertoire racine.
- Exemple : C:\Projets\Musee\assets
- Si le chemin contient des espaces : entourez-le de guillemets.
2) Préparez la destination
La destination doit exister dans beaucoup de cas. Sinon, xcopy doit pouvoir la créer selon vos options. En pratique, créez le dossier cible à l’avance si vous voulez une exécution fiable.
- Exemple : D:\Sauvegardes\Musee\assets
3) Vérifiez les droits
Si vous copiez vers un lecteur externe, un partage réseau ou un répertoire protégé, les droits NTFS peuvent bloquer la copie. Vous verrez alors des erreurs du type “access denied”. (Et oui : une invite de commande “standard” n’a pas toujours les mêmes droits qu’un shell lancé en administrateur.)
Astuce piège : un chemin source qui se termine par “\” ou non peut changer l’interprétation selon les options. Pour limiter les surprises, gardez une forme cohérente et testez d’abord sur un petit sous-dossier.
Étape 2 : Utiliser la commande xcopy “de base” pour copier des fichiers
Une commande xcopy suit généralement ce schéma :
xcopy <source> <destination> [options]
Commande minimale (fichiers)
Pour copier un fichier unique :
xcopy "C:\Projets\Musee\assets\affiche.jpg" "D:\Sauvegardes\Musee\assets"
Commande minimale (dossier)
Pour copier un dossier sans encore gérer les sous-dossiers, commencez simple. Ensuite, ajoutez les options.
xcopy "C:\Projets\Musee\assets" "D:\Sauvegardes\Musee\assets"
Ce que vous devez surveiller
- Messages de confirmation : selon les options, xcopy peut demander quoi faire avant d’écraser.
- Sortie console : regardez la dernière ligne et les éventuels codes d’erreur.
Si vous voulez aller plus loin, Microsoft documente les paramètres de la commande xcopy (Microsoft Learn).
Astuce piège : xcopy a une logique “fichiers” et une logique “dossiers” qui se précisent avec les commutateurs. Si le résultat n’est pas celui attendu, une option manque presque toujours… ou la source n’est pas pointée comme il faut.
Étape 3 : Copier les sous-dossiers et garder l’arborescence (cas le plus fréquent)
Quand on dit “copier un dossier”, on veut presque toujours : copier tout, y compris les sous-dossiers. Pour ça, ajoutez l’option /E (et souvent /I).
Copie récursive avec sous-dossiers
xcopy "C:\Projets\Musee\assets" "D:\Sauvegardes\Musee\assets" /E /I
/E copie les sous-répertoires, même les répertoires vides. /I indique à xcopy que la destination doit être considérée comme un dossier (pratique quand la destination n’existe pas encore ou quand l’interprétation peut être ambiguë).
Variante : exclure les répertoires vides
Si vous ne voulez pas les dossiers vides :
xcopy "C:\Projets\Musee\assets" "D:\Sauvegardes\Musee\assets" /S /I
/S copie les sous-répertoires, mais sans les vides.
Astuce vérification visuelle
Après la copie, ouvrez l’explorateur et comparez la structure (niveau 1 et niveau 2). Sur des arborescences volumineuses, vérifiez aussi le nombre de fichiers (cf. étape 6).
Astuce piège : si la destination contient déjà des fichiers, xcopy peut demander quoi faire. Choisissez un mode non interactif quand vous lancez la commande dans un script.
Étape 4 : Mettre à jour la copie (fichiers modifiés) sans réécrire inutilement
Copier “tout le temps” prend vite du temps, surtout avec des volumes vidéo, des assets 3D ou des exports de montage. xcopy permet de copier uniquement ce qui a changé.
Mettre à jour selon la date
xcopy "C:\Projets\Musee\assets" "D:\Sauvegardes\Musee\assets" /E /D /I
/D fait en sorte que xcopy copie uniquement les fichiers dont la date de modification est plus récente dans la source que dans la destination.
Cas “date spécifique”
Vous pouvez aussi fournir une date limite (selon la syntaxe attendue par xcopy). Si vous automatisez, testez d’abord sur un petit jeu de fichiers : le format de date peut varier selon la configuration régionale.
Quand préférer /C et /R ?
- /C : continue même en cas d’erreurs.
- /R : écrase les fichiers en lecture seule (utile quand une sauvegarde précédente a laissé des attributs “verrouillés”).
Exemple robuste :
xcopy "C:\Projets\Musee\assets" "D:\Sauvegardes\Musee\assets" /E /D /I /C /R
Astuce piège : /D ne remplace pas une vraie synchronisation bidirectionnelle. xcopy gère surtout la copie depuis la source vers la destination : les fichiers supprimés côté source ne disparaissent pas forcément côté destination.
Étape 5 : Contrôler les fichiers copiés (répertoires vides, exclusions, attributs)
Une fois la copie récursive et la mise à jour cadrées, vous pouvez affiner : exclure des types de fichiers, gérer les répertoires vides, et contrôler le comportement face aux attributs. Et franchement, c’est là que la commande devient vraiment pratique.
Gérer les répertoires vides
- /E : copie aussi les répertoires vides.
- /S : copie sans les répertoires vides.
Inclure uniquement certains fichiers
Vous pouvez utiliser des modèles (wildcards) pour cibler des extensions. Exemple :
xcopy "C:\Projets\Musee\assets\*" "D:\Sauvegardes\Musee\assets" /E /I /Y
Pour filtrer par extension, vous pouvez viser un sous-dossier ou adapter selon votre arborescence. /Y supprime la demande de confirmation avant d’écraser.
Exemple : copie non interactive (pratique en routine)
xcopy "C:\Projets\Musee\assets" "D:\Sauvegardes\Musee\assets" /E /I /D /Y
Répertoires “source” et destination réseau
Sur un partage (NAS, serveur, lecteur mappé), le comportement dépend de la latence et des droits. Si vous voyez des erreurs intermittentes, lancez la commande en dehors des heures chargées et vérifiez l’accès au partage via l’Explorateur avant.
Astuce piège : évitez les caractères spéciaux non échappés dans les chemins (surtout dans des scripts). Les guillemets autour des chemins restent votre meilleure assurance.
Étape 6 : Vérifier le résultat (et consigner l’exécution pour gagner du temps)
Après la copie, vous cherchez deux choses : savoir si tout s’est bien passé et pouvoir rejouer un diagnostic si quelque chose manque. La console de xcopy donne des indices, mais un log vous fait gagner un temps fou. (Et ça évite les “attends, je regarde…”.)
Vérifier rapidement la structure
- Ouvrez la destination et comparez la profondeur (sous-dossiers).
- Contrôlez un dossier “test” (par exemple un export récent).
Comparer le nombre de fichiers (méthode simple)
Vous pouvez compter côté destination. Par exemple via PowerShell :
powershell -NoProfile -Command "(Get-ChildItem -Recurse -File 'D:\Sauvegardes\Musee\assets').Count"
Générer un fichier log
Redirigez la sortie de xcopy vers un fichier :
xcopy "C:\Projets\Musee\assets" "D:\Sauvegardes\Musee\assets" /E /D /I /Y > "D:\Sauvegardes\Musee\xcopy_log.txt" 2>&1
Vous récupérez ainsi les erreurs et les messages dans le même fichier (pratique quand il faut remonter un incident).
Références utiles
- Documentation officielle de xcopy
- Comparaison avec la commande COPY (Windows)
- Contexte sur l’invite de commandes
- Robocopy (alternative moderne si vous synchronisez)
Astuce piège : un log ne remplace pas la vérification. Si la copie est critique (projets, rushs, archives), faites au moins un contrôle sur un sous-dossier représentatif. Et si vous avez un doute, posez-vous la question : “est-ce que je peux expliquer ce que j’ai copié, sans deviner ?”.
Résultat et prochaines étapes
Vous savez maintenant utiliser xcopy pour copier des fichiers et dossiers avec sous-répertoires, mettre à jour selon les dates, et sécuriser l’exécution avec /E, /D, /Y, /I et la redirection vers un log.
Prochaine étape logique : standardisez une “commande de routine” pour votre cas. Par exemple, une sauvegarde quotidienne d’assets peut tourner avec xcopy /E /D /I /Y, puis une vérification rapide. (Et si vous commencez à synchroniser plus finement, testez robocopy, plus orienté synchronisation.)
Pour aller plus loin côté bonnes pratiques de gestion de fichiers et de workflow, reliez cette logique à d’autres guides du blog : nos articles “high-tech” sur l’optimisation d’outils (par exemple, choisir des options pour des tâches répétitives) suivent la même idée : tester, mesurer, puis figer une méthode.
Et surtout : gardez votre commande xcopy lisible. Une ligne claire, un log, et un test sur un échantillon… c’est souvent la différence entre “ça a l’air d’avoir marché” et “je suis certain que c’est bon”.
FAQ xcopy : copier fichiers et dossiers sans stress
Comment copier un dossier avec tous les sous-dossiers en une seule commande ?
Utilisez xcopy avec /E (et souvent /I) : xcopy « source » « destination » /E /I.
Quelle option permet de ne copier que les fichiers modifiés ?
Ajoutez /D : xcopy « source » « destination » /E /D /I. Les fichiers dont la date source est plus récente seront copiés.
Pourquoi xcopy me demande confirmation pour écraser des fichiers ?
Parce qu’il est en mode interactif. Pour forcer le comportement, ajoutez /Y (ou ajustez selon le besoin). Exemple : xcopy « source » « destination » /E /D /I /Y.
Comment générer un fichier log pour garder une trace de la copie ?
Redirigez la sortie : xcopy … > « chemin\xcopy_log.txt » 2>&1. Vous récupérez les messages d’erreur et de succès.
Faut-il lancer l’invite de commande en administrateur ?
Ça dépend des droits sur la destination. Si vous copiez vers un dossier protégé ou un partage restreint, l’exécution en administrateur peut être nécessaire.