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, et chaque chaîne se trouve sur une ligne distincte du fichier. Si l'une des chaînes de caractères correspond à une partie du chemin 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. |
/[- ]sparse |
Active ou désactive la conservation de l'état épars des fichiers pendant le processus de copie. Si les deux paramètres sont spécifiés, /-sparse a la priorité sur /sparse. |
/noclone | Ne tente pas d'optimiser le clonage des blocs. |
/? | 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 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 destinationLa 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 entre
xcopy
etdiskcopy
Si vous avez un disque qui contient des fichiers dans des sous-répertoires et que vous voulez le copier sur un disque qui a un format différent, utilisez la commande
xcopy
au lieu dediskcopy
. Comme la commandediskcopy
copie les disques piste par piste, vos disques source et destination doivent avoir le même format. La commandexcopy
n'a pas cette exigence. Utilisezxcopy
, 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. Il n'y a pas assez de mémoire ou d'espace disque, ou vous avez saisi un nom de lecteur non valide 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 exécuter la commande précédente, s'assurer que xcopy
crée le répertoire \Address s'il n'existe pas et supprimer le message qui apparaît lorsque vous créez un nouveau 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 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.