xcopy

Copie des fichiers et des répertoires, y compris des sous-répertoires.

Pour obtenir des exemples d’utilisation de cette commande, consultez Exemples.

Syntaxe

Xcopy <Source> [<Destination>] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d [:MM-DD-YYYY]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a | /m}] [/n] [/o] [/x] [/exclude:FileName1[+[FileName2]][+[FileName3]]] [{/y | /-y}] [/z] [/b] [/j] [/compress]

Paramètres

Paramètre Description
<Source> Obligatoire. Spécifie l’emplacement et le nom des fichiers que vous souhaitez copier. Ce paramètre doit inclure un lecteur ou un chemin d’accès.
[<Destination>] Spécifie la destination des fichiers que vous voulez copier. Ce paramètre peut inclure une lettre de lecteur et deux-points, un nom de répertoire, un nom de fichier ou une combinaison de ceux-ci.
/w Affiche le message suivant et attend votre réponse avant de commencer à copier les fichiers :
Appuyez sur n’importe quelle touche pour commencer la copie du ou des fichiers
/p Vous invite à confirmer si vous voulez créer chaque fichier de destination.
/C Ignore les erreurs.
/v Vérifie chaque fichier tel qu’il est écrit dans le fichier de destination pour s’assurer que les fichiers de destination sont identiques aux fichiers sources.
/q Supprime l'affichage des messages xcopy.
/f Affiche les noms des fichiers source et de destination pendant la copie.
/l Génère une liste des fichiers à copier, mais ne copie pas activement les fichiers.
/g Crée des fichiers de destination déchiffrés lorsque la destination ne prend pas en charge le chiffrement.
/d [:MM-JJ-AAAA] Copie les fichiers sources modifiés à a date spécifiée ou après celle-ci uniquement. Si vous n’incluez pas de valeur MM-JJ-AAAA, xcopy copie tous les fichiers sources qui sont plus récents que les fichiers de destination existants. Cette option de ligne de commande vous permet de mettre à jour les fichiers que vous avez modifiés.
/U Copie les fichiers de la source qui existent uniquement sur la destination.
/i Si la source est un répertoire ou si elle contient des caractères génériques et que la destination n’existe pas, xcopy suppose que la destination spécifie un nom de répertoire et crée un répertoire. Ensuite, xcopy copie tous les fichiers spécifiés dans le nouveau répertoire. Par défaut, xcopy vous invite à spécifier si la destination est un fichier ou un répertoire.
/s Copie les répertoires et les sous-répertoires, sauf s’ils sont vides. Si vous omettez /s, xcopy fonctionne au sein d’un seul répertoire.
/e Copie tous les sous-répertoires, même s’ils sont vides. Utilisez /e avec les options de ligne de commande /s et /t.
/t Copie la structure du sous-répertoire uniquement (c’est-à-dire l’arborescence), et non les fichiers. Pour copier des répertoires vides, vous devez inclure l’option de ligne de commande /e.
/k Copie les fichiers et conserve l’attribut en lecture seule sur les fichiers de destination s’il est présent dans les fichiers sources. xcopy supprime par défaut l’attribut en lecture seule.
/r Copie les fichiers en lecture seule.
/h Copie les fichiers avec des attributs de fichier système et masqués. Par défaut, xcopy ne copie pas les fichiers masqués ou système
/a Copie seulement les fichiers sources dont les attributs de fichier d’archive sont définis. /a ne modifie pas l’attribut de fichier d’archive du fichier source. Pour plus d’informations sur la définition de l’attribut de fichier d’archive à l’aide d’attrib, consultez Liens connexes.
/m Copie les fichiers sources dont les attributs de fichier d’archive sont définis. Contrairement à /a, /m désactive les attributs de fichier d’archive dans les fichiers spécifiés dans la source. Pour plus d’informations sur la définition de l’attribut de fichier d’archive à l’aide d’attrib, consultez Liens connexes.
/n Crée des copies à l’aide des noms de fichiers courts NTFS ou de répertoires. /n est requis lorsque vous copiez des fichiers ou des répertoires à partir d’un volume NTFS vers un volume FAT ou lorsque la convention d’affectation de noms du système de fichiers FAT (c’est-à-dire 8,3 caractères) est requise sur le système de fichiers de destination. Le système de fichiers de destination peut être FAT ou NTFS.
/o Copie la propriété des fichiers et les informations de la liste de contrôle d’accès discrétionnaire (DACL).
/x Copie les paramètres d’audit des fichiers et les informations de la liste de contrôle d’accès système (SACL) (implique /o).
/exclude:FileName1[+[FileName2]][+[FileName3]( )] Spécifie une liste de fichiers. Au moins un fichier doit être indiqué. Chaque fichier contient des chaînes de recherche avec chaque chaîne sur une ligne distincte dans le fichier. Lorsque l’une des chaînes correspond à une partie du chemin d’accès absolu du fichier à copier, ce fichier est exclu de la copie. Par exemple, le fait de spécifier la chaîne obj exclut tous les fichiers sous le répertoire obj ou tous les fichiers avec l’extension .obj.
/y Supprime les invites pour confirmer que vous voulez remplacer un fichier de destination existant.
/-y Invite à confirmer que vous souhaitez remplacer un fichier de destination existant.
/z Copie sur un réseau en mode de redémarrage.
/b Copie le lien symbolique au lieu des fichiers. Ce paramètre a été introduit dans Windows Vista®.
/j Copie des fichiers sans mettre en mémoire tampon. Recommandé pour les fichiers très volumineux. Ce paramètre a été ajouté à Windows Server 2008 R2.
/compress Demande une compression réseau pendant le transfert de fichiers, le cas échéant.
/? Affiche l'aide à l'invite de commandes.
/sparse Permet de conserver l’état épars des fichiers pendant la copie.

Notes

  • Utilisation de /z

    Si vous perdez votre connexion pendant la phase de copie (par exemple, si le serveur se met hors connexion et interrompt la connexion), elle reprend une fois la connexion rétablie. /z affiche également le pourcentage de l’opération de copie terminée pour chaque fichier.

  • Utilisation de /y dans la variable d’environnement COPYCMD.

    Vous pouvez utiliser /y dans la variable d’environnement COPYCMD. Vous pouvez remplacer cette commande à l’aide de /-y sur la ligne de commande. Par défaut, vous êtes invité à la remplacer.

  • Copie de fichiers chiffrés

    La copie de fichiers chiffrés dans un volume qui ne prend pas en charge EFS génère une erreur. Déchiffrez les fichiers d’abord ou copiez les fichiers dans un volume qui prend en charge EFS.

  • Ajout de fichiers

    Pour ajouter des fichiers, spécifiez un seul fichier pour une destination, mais plusieurs fichiers pour une source (c’est à dire, à l’aide de caractères génériques ou du format fichier1+fichier2+fichier3).

  • Valeur par défaut pour la destination

    Si vous omettez la destination, la commande xcopy copie les fichiers dans le répertoire actif.

  • Spécification du fait que la destination est un fichier ou un répertoire

    Si une destination ne contient pas de répertoire existant et ne se termine pas par une barre oblique inverse (\), le message suivant s’affiche :

    Does <Destination> specify a file name or directory name on the target(F = file, D = directory)?
    

    Appuyez sur F si vous souhaitez que le ou les fichiers soient copiés dans un fichier. Appuyez sur D si vous souhaitez que le ou les fichiers soient copiés dans un répertoire.

    Vous pouvez supprimer ce message à l’aide de l’option de ligne de commande /i. Par conséquent, xcopy assume que la destination est un répertoire si la source contient plusieurs fichiers ou répertoires.

  • Utilisation de la commande xcopy pour définir l’attribut d’archive pour les fichiers de destination

    La commande xcopy crée des fichiers avec l’ensemble d’attributs d’archive, que cet attribut ait été défini ou non dans le fichier source. Pour plus d’informations sur les attributs de fichier et attrib, consultez Liens connexes.

  • Comparaison xcopy et copie de disque

    Si vous avez un disque qui contient des fichiers dans des sous-répertoires et que vous souhaitez le copier dans un disque dont le format est différent, utilisez la commande xcopy au lieu de diskcopy. Étant donné que la commande diskcopy copie les disques piste par piste, vos disques source et de destination doivent avoir le même format. La commande xcopy n’impose pas cette exigence. Utilisez xcopy, sauf si vous avez besoin d’une copie complète de l’image de disque.

  • Erreur de mémoire insuffisante

    Une erreur « mémoire insuffisante » peut se produire en cas d’exécution de xcopy pour copier un fichier ou un dossier dont le chemin d’accès au nom de fichier est supérieur à 255 caractères.

  • Codes de sortie pour xcopy

    Pour traiter les codes de sortie renvoyés par xcopy, utilisez le paramètre ErrorLevel sur la ligne de commande if dans un programme de traitement par lots. Pour obtenir un exemple de programme de traitement par lots qui traite les codes de sortie à l’aide de if, consultez Liens connexes. Le tableau suivant répertorie chaque code de sortie et une description.

    Code de sortie Description
    0 Les fichiers ont été copiés sans erreur.
    1 Impossible de trouver un fichier à copier.
    2 L’utilisateur a appuyé sur Ctrl+C pour terminer xcopy.
    4 Une erreur d'initialisation s'est produite. La mémoire ou l’espace disque sont insuffisants, ou vous avez entré un nom de lecteur ou une syntaxe non valide sur la ligne de commande.
    5 Une erreur d’écriture sur le disque s’est produite.

Exemples

1. Pour copier tous les fichiers et les sous-répertoires (y compris les sous-répertoires vides) du lecteur A vers le lecteur B, tapez :

xcopy a: b: /s /e

2. Pour inclure des fichiers système ou masqués dans l’exemple précédent, ajoutez l’option de ligne de commande /h comme suit :

xcopy a: b: /s /e /h

3. Pour mettre à jour les fichiers du répertoire \Reports avec les fichiers du répertoire \Rawdata qui ont changé depuis le 29 décembre 1993, tapez :

xcopy \rawdata \reports /d:12-29-1993

4. Pour mettre à jour tous les fichiers qui existent dans \Reports de l’exemple précédent, quelle que soit la date, tapez :

xcopy \rawdata \reports /u

5. Pour obtenir la liste des fichiers à copier par la commande précédente (c’est-à-dire, sans réellement copier les fichiers), tapez :

xcopy \rawdata \reports /d:12-29-1993 /l > xcopy.out

Le fichier xcopy.out répertorie chaque fichier à copier.

6. Pour copier le répertoire \Customer et tous les sous-répertoires dans le répertoire \\Public\Address sur le lecteur réseau H:, conserver l’attribut en lecture seule et être invité quand un nouveau fichier est créé sur H:, tapez :

xcopy \customer h:\public\address /s /e /k /p

7. Pour émettre la commande précédente, vérifiez que xcopy crée le répertoire \Address s’il n’existe pas et supprimez le message qui s’affiche lorsque vous créez un répertoire, puis ajoutez l’option de ligne de commande /i comme suit :

xcopy \customer h:\public\address /s /e /k /p /i

8. Vous pouvez créer un programme de traitement par lots pour effectuer des opérations xcopy et utiliser la commande batch if pour traiter le code de sortie si une erreur se produit. Par exemple, le programme de traitement par lots suivant utilise des paramètres remplaçables pour les paramètres source et de destination xcopy :

@echo off
rem COPYIT.BAT transfers all files in all subdirectories of
rem the source drive or directory (%1) to the destination
rem drive or directory (%2)
xcopy %1 %2 /s /e
if errorlevel 4 goto lowmemory
if errorlevel 2 goto abort
if errorlevel 0 goto exit
:lowmemory
echo Insufficient memory to copy files or
echo invalid drive or command-line syntax.
goto exit
:abort
echo You pressed CTRL+C to end the copy operation.
goto exit
:exit

Pour utiliser le programme de traitement par lots précédent afin de copier tous les fichiers dans le répertoire C:\Prgmcode et ses sous-répertoires dans le lecteur B, tapez :

copyit c:\prgmcode b:

L’interpréteur de commandes remplace C:\Prgmcode par %1 et B: par %2, puis utilise xcopy avec les options de ligne de commande /e et /s. Si xcopy rencontre une erreur, le programme de traitement par lots lit le code de sortie et accède à l’étiquette indiquée dans l’instruction IF ERRORLEVEL appropriée, puis affiche le message approprié et quitte le programme de traitement par lots.

9. Cet exemple copie tous les répertoires non vides, ainsi que les fichiers avec l’extension de fichier associée après le symbole astérisque.

xcopy .\toc*.yml ..\..\Copy-To\ /S /Y

rem Output example.
rem  .\d1\toc.yml
rem  .\d1\d12\toc.yml
rem  .\d2\toc.yml
rem  3 File(s) copied

Dans l’exemple précédent, cette valeur de paramètre source particulière .\toc*.yml copie les 3 mêmes fichiers même si ses deux caractères de chemin d’accès .\ ont été supprimés. Toutefois, aucun fichier n’est copié si le caractère générique de l’astérisque est supprimé du paramètre source, ce qui en fait simplement .\toc.yml.