1 – Syntaxe de la commande Xcopy
Xcopy possède un grand nombre d’options ce qui rend cette commande très flexible. Voici la syntaxe de la commande :
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W] [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R]
[/T] [/U] [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/EXCLUDE:fichier1[+fichier2][+fichier3]…]
Les options sont indiquées en majuscules mais la casse n’est pas importante. Vous trouverez une description des différents paramètres dans le tableau I. Dans Windows Vista, il y a un commutateur supplémentaire : « /B ». Cette option permet de copier un lien symbolique lui-même plutôt que la cible du lien.
Tableau I. Descriptions des options de la commande Xcopy
Commutateur Description
/A Copie uniquement les fichiers possédant l’attribut archive, ne change pas l’attribut.
/M Copie uniquement les fichiers possédant l’attribut archive, désactive l’attribut archive. Utile pour les sauvegardes.
/D:j-m-a Copie les fichiers modifiés à partir de la date spécifiée. Si aucune date n’est donnée, copie uniquement les fichiers dont
l’heure source est plus récente que l’heure de destination. Utile pour les sauvegardes.
/P Avertissement avant la création de chaque fichier de destination.
/S Copie les répertoires et sous-répertoires à l’exception des répertoires vides.
/E Copie les répertoires et sous-répertoires, y compris les répertoires vides. Identique à /S /E. Peut être utilisé pour modifier /T
/V Vérifie chaque nouveau fichier. Non utilisé par Windows XP.
/W Vous demande d’appuyer sur une touche avant la copie.
/C Continue la copie même si des erreurs se produisent.
/I Si la destination n’existe pas et que plus d’un fichier est copié, considére la destination comme devant être un répertoire.
/Q N’affiche pas les noms de fichiers lors de la copie.
/F Affiche les noms de source et de destination complets lors de la copie.
/L Affiche les fichiers devant être copiés.
/G Permet la copie des fichiers chiffrés vers des destinations qui ne prennent pas en charge le chiffrement.
/H Copie également les fichiers cachés et les fichiers système.
/R Remplace les fichiers en lecture seule.
/T Crée la structure de répertoires mais ne copie pas les fichiers. N’inclut pas les répertoires ou sous-répertoires vides. /T /E
incluent les répertoires et sous-répertoires vides.
/U Copie seulement les fichiers existants déjà dans la destination.
/K Copie les attributs. La commande normale Xcopy rétablira les attributs de lecture seule.
/N Copie en utilisant les noms courts générés. Peut être nécessaire pour les copies de NTFS vers FAT16.
/O Copie les fichiers d’appartenance et les informations d’ACL.
/X Copie les paramètres d’audit de fichiers (implique /O).
/Y Supprime la demande de confirmation de remplacement de fichiers de destination existants. Peut être pré-réglé dans la variable
d’environnement COPYCMD.
/-Y Provoque la demande de confirmation de remplacement d’un fichier de destination existant.
/Z Copie les fichiers du réseau en mode redémarrable.
/EXCLUDE:fichier1[+fichier2][+fichier3]… Spécifie une liste de fichiers contenant des chaînes à exclure. Délicat à utiliser.
2 – Applications de Xcopy
Xcopy fournit un excellent outil pour sauvegarder les dossiers sélectionnés. Avec les options appropriées, une multitude de scénarios de sauvegarde peuvent être créés. Il est par exemple possible de configurer un script de sauvegarde copiant uniquement les fichiers qui ont été modifiés. Voici un exemple de commande :
xcopy C:unDossier E:dossierSauvegarde /D /E /C /R /H /I /K /Y
Cette commande va copier les fichiers cachés et en lecture seule et créer le dossier de destination et les sous-dossiers s’ils n’existent pas.
L’exemple suivant montre comment utiliser un joker; il permet de sélectionner des fichiers d’un certain type et de les copier dans un emplacement. La commande
xcopy C:*.mp3 E:dossierMP3 /S /I /C > E:listeMP3.txt
va récupérer tous les MP3 du disque C: et les copier dans le répertoire dossierMP3 du disque E:. Elle crée également une liste des fichiers copiés et l’enregistre sur le disque E: (E:listeMP3.txt). Cette simple commande préserve la structure des sous-répertoires. Si vous le souhaitez, un script plus complexe peut être écrit pour placer tous les fichiers MP3 dans un dossier sans aucun sous-répertoire.
3 – Exclure des fichiers et dossiers.
Une fonctionnalité utile de Xcopy est la possibilité d’exclure certains fichiers et/ou répertoires lors de la copie à l’aide du commutateur « /Exclude ». Tous les noms contenant une chaine de caractères donnée peuvent être exclus. Malheureusement, la description de Microsoft sur cette option n’est pas un modèle de clarté ni d’exactitude. En fait, les discussions sur Internet à ce sujet indiquent qu’il existe une confusion considérable sur la manière d’utiliser cette fonction. J’expère que la liste ci-dessous vous aidera à mieux comprendre comment l’utiliser.
Les chaines de caractères pour l’exclusion ne sont pas entrées directement en paramètre de la commande.
L’entrée attendue par le commutateur est un ou plusieurs fichiers textes qui listent les chaînes de caractères à exclure.
Le format de l’option est : /Exclude:{chemin}liste_des_exclusions.txt. Remarquez la présence du deux-points ( entre Exclude et le nom du fichier. Bien que vous puissiez utiliser plusieurs fichiers pour l’exclusion, il est préférable de n’en utiliser qu’un si possible.
Les noms de fichiers ne peuvent pas contenir d’espaces. Il n’est pas possible d’utiliser des guillemets.
Soyez prudents avec les chemins. Rappelez-vous que les opérations sont effectuées à partir du répertoire courant dans l’invite de commande. Je vous conseille de placer la liste d’exclusion dans le répertoire le plus haut des répertoires à copier et d’ouvrir l’invite de commande dans le répertoire juste au dessus de celui à copier. (Rendez-vous ici si vous ne savez pas comment ouvrir l’invite de commande à un emplacement précis). Les différents chemins relatifs seront alors simples. Si vous utilisez l’invite de commande depuis l’emplacement par défaut, cela risque d’être compliqué.
La liste d’exclusion doit contenir une chaîne de caractères d’exclusion par ligne. Les jokers ne peuvent pas être utilisés et ne fonctionnent pas. Si vous souhaitez exclure tous les fichiers dont le nom contient ABC, placez simplement ABC dans une ligne du fichier d’exclusion. Si vous utilisez le commutateur « /S », le fichier d’exclusion s’appliquera aux sous-répertoires ainsi qu’au répertoire principal.
Pour exclure un sous-répertoire particulier, indiquez son nom dans le fichier d’exclusion avec un backslash avant et après son nom. Par exemple : dossier_a_exclure
Utilisez un éditeur de texte pour créer le fichier d’exclusion. N’utilisez pas Microsoft Word ou un autre traitement de texte à moins que vous ne fassiez attention à bien créer des fichiers textes purs. Utilisez l’encodage ANSI. Quand j’ai essayé d’utiliser UTF-8, le fichier n’a pas fonctionné.
4 – Codes retour de Xcopy
Beaucoup de commandes renvoient un code en fin d’exécution pour indiquer le statut de la commande. La liste des codes de sortie pour Xcopy est donnée dans le tableau II. Les codes d’erreurs peuvent être utiles dans les fichiers batch quand ils sont utilisés avec des instructions if.
Tableau II. Codes retour de Xcopy
Code retour Description
0 Les fichiers ont été copiés sans erreur.
1 Aucun fichier à copier n’a été trouvé.
2 L’utilisateur a utilisé [Ctrl]+[C] pour arrêter xcopy.
4 Erreurs diverses comme manque de mémoire, espace disque insuffisant, nom de lecteur invalide ou syntaxe incorrecte.
5 Une erreur d’écriture disque est survenue.