xcopy

Copie les fichiers et répertoires, y compris les 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 les noms 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 souhaitez copier. Ce paramètre peut inclure une lettre de lecteur et un signe deux-points, un nom de répertoire, un nom de fichier ou une combinaison de celles-ci.
/w Affiche le message suivant et attend votre réponse avant de commencer à copier des fichiers :
appuyez sur n’importe quelle touche pour commencer à copier des fichiers
/p Vous invite à confirmer si vous souhaitez 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 vous assurer que les fichiers de destination sont identiques aux fichiers sources.
/q Supprime l’affichage des xcopy messages.
/f Affiche les noms de fichiers source et de destination lors de la copie.
/l Génère une liste de 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-DD-AAAA] Copie uniquement les fichiers sources modifiés à la date spécifiée ou après celle-ci. Si vous n’incluez pas de valeur MM-DD-AAAA , xcopy copie tous les fichiers sources plus récents que les fichiers de destination existants. Cette option de ligne de commande vous permet de mettre à jour les fichiers qui ont changé.
/U Copie les fichiers de la source qui existent uniquement sur la destination .
/i Si la source est un répertoire ou 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 des répertoires et des sous-répertoires, sauf s’ils sont vides. Si vous omettez /s, xcopy fonctionne dans 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 de sous-répertoire (autrement dit, l’arborescence) uniquement, et non les fichiers. Pour copier des répertoires vides, vous devez inclure l’option de ligne de commande /e .
K Copie des fichiers et conserve l’attribut en lecture seule sur les fichiers de destination s’il est présent sur les fichiers sources . Par défaut, xcopy supprime l’attribut en lecture seule.
/r Copie les fichiers en lecture seule.
/h Copie des fichiers avec des attributs de fichiers masqués et système. Par défaut, xcopy ne copie pas les fichiers masqués ou système
/a Copie uniquement les fichiers sources dont les attributs de fichier d’archivage 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 Références supplémentaires.
/m Copie les fichiers sources dont les attributs de fichier d’archivage sont définis. Contrairement à /a, /m désactive les attributs de fichier 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 Références supplémentaires.
/n Crée des copies à l’aide des noms de fichiers ou de répertoires courts NTFS. /n est requis lorsque vous copiez des fichiers ou des répertoires d’un volume NTFS vers un volume FAT ou lorsque la convention d’affectation de noms du système de fichiers FAT (autrement dit, 8,3 caractères) est requise sur le système de fichiers de destination . Le système de fichiers destinatio* peut être FAT ou NTFS.
/o Copie les informations de propriété de fichier et de liste de contrôle d’accès discrétionnaire (DACL).
/x Copie les paramètres d’audit des fichiers et les informations de 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 spécifié. Chaque fichier contient des chaînes de recherche avec chaque chaîne sur une ligne distincte du fichier. Lorsqu’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, la spécification de 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 souhaitez 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 redémarré.
/b Copie le lien symbolique au lieu des fichiers. Ce paramètre a été introduit dans Windows Vista®.
/j Copie les fichiers sans mise en mémoire tampon. Recommandé pour les fichiers très volumineux. Ce paramètre a été ajouté dans Windows Server 2008 R2.
/compresser Demandez la compression réseau lors du transfert de fichiers, le cas échéant.
/? Affiche l'aide à l'invite de commandes.

Notes

  • Utilisation de /z

    Si vous perdez votre connexion pendant la phase de copie (par exemple, si le serveur se déconnecte de la connexion), elle reprend après avoir rétabli la connexion. /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é à 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 d’abord les fichiers ou copiez-les dans un volume qui prend en charge EFS.

  • Ajout de fichiers

    Pour ajouter des fichiers, spécifiez un seul fichier pour la destination, mais plusieurs fichiers pour la source (autrement dit, à l’aide de caractères génériques ou de fichier1+fichier2+format3).

  • Valeur par défaut pour la destination

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

  • Spécifier si la destination est un fichier ou un répertoire

    Si la 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 fichier ou les fichiers soient copiés dans un fichier. Appuyez sur D si vous souhaitez que le fichier 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 , ce qui suppose xcopy que la destination est un répertoire si la source est plusieurs fichiers ou répertoires.

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

    La xcopy commande crée des fichiers avec le jeu 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 Références supplémentaires.

  • Comparaison de **xcopy** et de diskcopy

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

  • Codes de sortie pour xcopy

    Pour traiter les codes de sortie retournés par xcopy, utilisez le paramètre ErrorLevel sur la ligne de commande si dans un programme batch. Pour obtenir un exemple de programme par lots qui traite les codes de sortie à l’aide de si, consultez Références supplémentaires. 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 Aucun fichier n’a été trouvé à copier.
    2 L’utilisateur a appuyé sur Ctrl+C pour terminer xcopy.
    4 Une erreur d’initialisation s’est produite. Il n’y a pas suffisamment de mémoire ou d’espace disque, ou vous avez entré un nom de lecteur non valide ou une syntaxe non valide sur la ligne de commande.
    5 Une erreur d’écriture de disque s’est produite.

Exemples

1. Pour copier tous les fichiers et sous-répertoires (y compris les sous-répertoires vides) du lecteur A au 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 dans le répertoire \Reports avec les fichiers du répertoire \Rawdata modifiés 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 dans l’exemple précédent, quel que soit la date, tapez :

xcopy \rawdata \reports /u

5. Pour obtenir une liste des fichiers à copier par la commande précédente (autrement dit, sans copier réellement 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:, conservez l’attribut en lecture seule et soyez invité lorsqu’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, assurez-vous de xcopy créer le répertoire \Address s’il n’existe pas et supprimez le message qui s’affiche lorsque vous créez un répertoire, 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 xcopy opérations et utiliser le lot si la commande permet de traiter le code de sortie en cas d’erreur. Par exemple, le programme batch suivant utilise des paramètres remplaçables pour les xcopy paramètres source et de destination :

@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 batch précédent pour copier tous les fichiers dans le répertoire C:\Prgmcode et ses sous-répertoires pour le lecteur B, tapez :

copyit c:\prgmcode b:

L’interpréteur de commandes remplace C:\Prgmcode pour %1 et B : pour %2, puis utilise xcopy les options de ligne de commande /e et /s . Si xcopy une erreur se produit, le programme batch 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 batch.

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 mêmes 3 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 astérisque a été supprimé du paramètre source, ce qui en fait simplement .\toc.yml.

Références supplémentaires