LA COMMANDE XCOPY
Commande externe. Fonctionne sur la ligne de commande ou dans un batch.
Copie des fichiers (excepte les fichiers caches et les fichiers systeme) et des repertoires ainsi que leurs sous repertoires.
Syntaxe
XCOPY source [destination] [/Y|/-Y] [/A|/M] [/D:date] [/P] [/S] [/E] [/V] [/W]
Parametres
source
Specifie l'emplacement et le nom des fichiers a copier. Ce parametre doit etre un lecteur ou un chemin d'acces.
destination
Specifie la destination des fichiers a copier. Vous pouvez indiquer une lettre de lecteur suivie du signe deux points (
, un nom de repertoire, un nom de fichier, ou plusieurs de ces elements.
Commutateurs
/Y
Indique que la commande XCOPY doit remplacer (ou ecraser) le(s) fichier(s) existant(s) sans demander confirmation. Par defaut, si vous specifiez un fichier existant comme fichier de destination, la commande XCOPY vous demande si vous souhaitez remplacer le fichier existant (les versions de DOS anterieures a DOS 6.22 remplacent purement et simplement les fichiers existants.) Si la commande XCOPY fait partie d'un batch, elle se comporte comme dans les versions precedentes de DOS. Si ce commutateur est specifie, il prevaut sur tous les parametres par defaut, ainsi que sur le parametre courant de la variable d'environnement [COPYCMD].
/-Y
Indique que la commande XCOPY doit vous demander une confirmation avant de remplacer un fichier existant. Si ce commutateur est specifie, il prevaut sur tous les parametres par defaut, ainsi que sur le parametre courant de la variable d'environnement [COPYCMD].
/A
Copie uniquement les fichiers source dont l'attribut d'archive est active, sans modifier cet attribut. Pour plus d'informations sur l'activation de l'attribut d'archive, voyez la commande [ATTRIB].
/M
Copie les fichiers source dont l'attribut d'archive est active, et desactive cet attribut, contrairement au commutateur /A. Pour plus d'informations sur l'activation de l'attribut d'archive, voyez la commande [ATTRIB].
/D:date
Copie uniquement les fichiers source qui ont ete modifies a la date indiquee ou a une date ulterieure. Le format de date depend du parametre utilise avec la commande [COUNTRY].
/P
Demande confirmation a la creation de chaque fichier de destination.
/S
Ne copie pas les repertoires et sous repertoires vides. Si vous ne specifiez pas ce parametre, XCOPY est appliquee a un seul repertoire.
/E
Copie tous les sous repertoires, meme ceux qui sont vides. Ce commutateur ne s'utilise qu'associe a /S.
/V
Verifie chaque fichier lors de son ecriture sur le disque de destination pour s'assurer que le fichier copie est identique au fichier source (ralenti la copie).
/W
Affiche le message: "Appuyez sur une touche pour lancer la copie des fichiers" et attend la reponse avant de commencer la copie.
Pour plus d'informations sur la copie de fichiers individuels, voyez la commande [COPY].
Pour plus d'informations sur la copie de disquettes, voyez la commande [DISKCOPY].
Valeur par defaut du parametre destination
Si vous ne specifiez pas le parametre destination, XCOPY copie les fichiers dans le repertoire en cours.
Specification de la destination
Si la destination indiquee ne contient pas de repertoire et ne se termine pas par un anti slash (\), XCOPY affiche le message: Cible represente-t-il un nom de fichier ou de repertoire sur le lecteur cible (F = Fichier, R = Repertoire) ? Appuyez sur F pour copier le(s) fichier(s) dans un autre fichier, et sur R pour les copier dans un repertoire.
Parametrage de la variable d'environnement [COPYCMD]
Vous pouvez parametrer la variable d'environnement [COPYCMD] pour specifier si les commandes [COPY], [MOVE] et XCOPY doivent vous demander confirmation avant de remplacer un fichier, que ces commandes soient executees a partir de l'invite du DOS ou d'un batch. Pour forcer les commandes [COPY], [MOVE] et XCOPY a vous demander dans tous les cas, confirmation avant de remplacer des fichiers, indiquez le commutateur /-Y pour la variable d'environnement [COPYCMD]. Pour forcer ces commandes a remplacer les fichiers dans tous les cas sans vous demander confirmation, indiquez le commutateur /Y pour la variable d'environnement [COPYCMD]. Le fait de specifier le commutateur /Y ou /-Y pour l'une de ces commandes prevaut sur tous les parametres par defaut, ainsi que sur le parametre courant de la variable d'environnement [COPYCMD].
Dans les versions de DOS anterieures a DOS 6.22, XCOPY permettait de copier les fichiers caches et les fichiers systeme, mais c'etait le bon vieux temps... Pour desactiver les attributs cache ou systeme d'un fichier, utilisez d'abord la commande [ATTRIB].
XCOPY active l'attribut d'archive des fichiers qu'elle cree (+A), qu'il soit actif ou non dans le fichier source correspondant. Pour plus d'informations sur les attributs de fichier, voyez la commande [ATTRIB].
Differences entre XCOPY et [DISKCOPY]
[DISKCOPY] est une commande specialisee dans la copie de disquettes. Utilisez donc XCOPY plutot que [DISKCOPY] pour copier un disque qui comporte des sous repertoires contenant des fichiers vers un disque qui n'est pas du meme format. En effet, [DISKCOPY] copiant le disque piste par piste, il est indispensable que le disque source et le disque de destination soient du meme format, ce qui n'est pas exige par XCOPY. De facon generale, utilisez XCOPY si vous ne souhaitez pas obtenir une image complete du disque source. Toutefois, cette commande ne copie pas les fichiers caches ni les fichiers systeme, tels que IO.SYS ou MSDOS.SYS. Ne l'utilisez donc pas pour effectuer la copie d'un disque systeme (utilisez plutot [DISKCOPY]).
Codes de sortie XCOPY (aussi appele codes [ERRORLEVEL])
La liste suivante presente et decrit brievement les differents codes de sortie retournes par XCOPY:
0
Copie des fichiers executes sans erreur.
1
Aucun fichier a copier.
2
Interruption de XCOPY par CTRL+C.
4
Erreur d'initialisation. Soit l'espace disque ou la memoire sont insuffisants, soit le nom du lecteur indique ou la syntaxe utilisee sont incorrects.
5
Erreur d'ecriture sur disque.
Vous pouvez traiter ces codes de sortie en utilisant le parametre [ERRORLEVEL] dans la ligne de commande [IF] d'un batch.
Exemples
La commande suivante copie tous les fichiers et sous repertoires (y compris les sous repertoires vides) du lecteur A: vers le lecteur C:. xcopy a: c: /s /e
Dans l'exemple qui suit, les commutateurs /D: et /V sont utilises: xcopy a: c: /d:11/05/93 /s /v
Cette commande ne copie vers le lecteur C: que les fichiers du lecteur A: crees le 11/05/93 ou ulterieurement. Une fois la copie effectuee, XCOPY compare les fichiers des deux disques pour verifier s'ils sont identiques.
Vous pouvez creer un batch qui execute des operations XCOPY et utilise la commande [IF] pour traiter les codes de sortie en cas d'erreur. Par exemple, le batch qui suit modifie la valeur des parametres source et destination en cas d'erreur:
@echo off
rem COPIE.BAT copie tous les fichiers source
rem de tous les repertoires du lecteur source
rem (%1) vers le lecteur de destination (%2)
xcopy %1 %2 /s /e
if errorlevel 4 goto pbmemoire
if errorlevel 2 goto annuler
if errorlevel 0 goto fin
:pbmemoire
echo Memoire insuffisante pour copier les fichiers ou
echo lecteur non valide ou erreur de syntaxe.
goto fin
:annuler
echo Vous avez appuye sur CTRL+C pour annuler la copie.
goto fin
:fin
Pour copier tous les fichiers du repertoire C:\PROGCODE et de ses sous repertoires vers le lecteur D: en utilisant ce batch, tapez: copie c:\progcode b:
L'interpreteur de commandes remplace %1 par C:\PROGCODE et %2 par D:, puis execute la commande XCOPY avec les commandes /E et /S. Si une erreur se produit, le programme de commande lit le code de sortie et passe a l'etiquette specifiee a l'instruction [IF] [ERRORLEVEL] concernee. Le DOS affiche le message correspondant et termine l'execution du batch.