Retour au menu  

Séance groupe II n° 4 du 7/11/2011
Une sauvegarde grâce à Xcopy du DOS 

I Remarques préliminaires
Windows XP
et 7 proposent l’outil Gestion des sauvegardes. Ce dernier fait un backup de vos fichiers et dossiers dans un seul fichier compressé à la manière d'une archive ZIP (fichier bkf). Le problème est que ce type de sauvegarde n'est consultable que par la Gestion des sauvegardes. Vous avez pu constater que Microsoft a voulu faire quelque chose d'automatique et a abouti à un outil assez peu pratique à manipuler.
Il existe pourtant une manière entièrement autonome, simple et légère de faire un backup : avec un fichier batch (extension .bat) en commande DOS, ou même un simple raccourci matérialisé par une icône sur le Bureau.
Ce procédé va avoir l'avantage de ne pas faire à chaque fois des sauvegardes complètes, d'avoir toujours une sauvegarde avec les dernières modifications à jour, et de pouvoir accéder directement aux fichiers, contrairement à un backup, qui demande un processus de restauration.
Inconvénient : le résultat est plus lourd qu'un backup, mais les disque modernes ont beaucoup de place !

II Qu'est ce que le DOS (Disk Operating System) ?
Il s'agit de l'ancien noyau du système d'exploitation Microsoft, qui était l'interface des rapports homme/machine au début des années 80 (et avant), travaillant en ligne de commande. Ensuite Microsoft a ajouté une couche graphique, qui a permis de travailler avec des images, des icônes, une souris etc. C'est ce système à double couche qui perdure aujourd'hui, les commandes DOS étant toujours opérationnelles. Ce procédé "clic de souris", inspiré du système Apple qui l'a précédé, est à l'origine de la démocratisation de l'informatique moderne.

III Montage du fichier batch
Dans notre exemple, nous supposerons que nos documents se trouvent sur une seconde partition (disque D) dans un dossier Docs, qui sera la source, et que nous ferons la sauvegarde sur un disque dur externe E: dans un dossier appelé Stock-4211 (Destination). Le 4211 peut signifier que nous avons fait une sauvegarde de nos données la 42ème semaine de l'année 2011. Le fichier batch va sauvegarder le répertoire D:\Docs\*.*  dans un dossier E:\Stock-4211\

Bien sûr, vous devez adapter le prochain script à votre situation personnelle et créer ainsi votre propre sauvegarde. Définissez d'abord où se trouvent vos documents à sauvegarder. Ecrivez-en le chemin (Path) (Elément 2 de la ligne de commande). Définissez ensuite où vous voulez les mettre (autre disque, autre partition, disque dur externe, clé USB). Sur ce support destination, créez un dossier qui accueillera votre sauvegarde. Ecrivez-en le chemin (Elément 3 de la ligne de commande)

Ouvrez le Bloc Notes et tapez les lignes suivantes (chaque lettre et chaque intervalle a son importance)

@echo off

xcopy   D:\Docs\*.*   "E:\Stock-4211"   /E /H /R /Y /I /D

Sauvegardez le fichier sur le bureau sous le nom de sauvedoc.bat. Un simple double clic sur ce fichier exécutera la procédure de sauvegarde.

Explications :

Le fichier batch en texte simple (sans effets spéciaux ni mise en page) a pour extension bat. C'est un exécutable et il peut être redoutable car un seul double-clic sur son icône lui ordonne d'exécuter ce qu'il contient. Il fait partie des fichiers surveillés par les antivirus.

Son contenu :

La ligne @echo off déconnecte l'affichage à l'écran de ce qui se passe lors de l'exécution
La ligne de commande contient quatre éléments séparés du suivant par un espace (indispensable)

Elément 1 : xcopy : c'est la commande proprement dite comme il en existe de nombreuses dans le DOS
Elément 2 : D:\Docs\*.* : C'est le chemin complet des données à sauvegarder (Source). D: est la lettre du disque des documents, Docs est le dossier qui les contient, *.* signifie que vous voulez sauvegarder tous les noms de fichiers et toutes les extensions. Si vous ne vouliez sauvegarder que les images jpg, vous écririez *.jpg
Elément 3 : "E:\Stock-4211" : C'est le chemin qui mène au dossier chargé de recueillir les données sauvegardées (destination). Il est entre guillements, car le DOS ne gère bien que les fichiers et dossiers de 8 caractères maximum sans espaces. Dans le cas contraire, on l'amadoue en mettant le chemin entre guillemets.
Elément 4 : /E /H /R /Y /I /D : Ce sont les commutateurs qui jouent tous un rôle
  /E : donne l'ordre de copier les dossiers et sous-dossiers (ou sous-répertoires)
  /H : copie les fichiers et dossiers cachés et système
  /R : remplace les fichiers en lecture seule
  /Y : supprime la demande de remplacement des fichiers existants (très important car sans ce /Y, le processus s'interromprait en permanence pour vous demander une confirmation, ce qui serait fastidieux.
  /I  : considère que la destination est un répertoire et non pas un fichier
  /D : très important dans notre cas, il permet de comparer la date de la source et la date de la destination. Si elles sont identiques, il ne touche à rien ; si la date de la source est plus récente, il remplace la destination par la nouvelle source.


IV Comment connaître le chemin (Path) des documents de votre propre ordinateur
Ouvrez le Poste de travail (ou Ordinateur) et utilisez l'arborescence proposée pour vous rendre dans le dossier contenant vos fichiers. Dans la barre d'adresse située en haut, sous la barre de menus, s'inscrit le chemin exact qui mène à votre dossier.
Exemple    D:\Documents\Mes images

C'est ce Path qu'il faut utiliser dans votre fichier batch

Dans le cas présent, le contenu du dossier Docs sera entièrement copié sur le disque dur externedans le répertoire Stock-4211. A vous donc d’ajouter vos propres lignes dans le script. Vous pouvez notamment ajouter une ligne identique mais en remplaçant la source par un autre dossier comportant d'autres documents, par exemple  "C:\Documents and Settings\Default User\Mes documents\*.*". Vous remarquez que ce chemin est encore encadré par des guillemets. Avec plusieurs lignes, votre sauvegarde effectuera successivement plusieurs actions mettant à l'abri plusieurs séries de données personnelles différentes.

  Dans Windows 7, le chemin n'est pas exprimé d'une façon aussi claire. Pour le connaître, voici le procédé :
Ouvrez "Ordinateur" ou "Explorateur Windows". Rendez-vous dans le dossier de vos documents à sauvegarder. Dans la barre d'adresse, au sommet de la fenêtre, à l'extrémité gauche, vous voyez une icône de dossier. Cliquez gauche dessus et le chemin va apparaître dans la barre d'adresse sous sa forme habituelle (disque:\dossier\dossier).
Une autre solution : cliquez droit dans la partie libre à droite de la barre d'adresse. Choisissez "Copier l'adresse". Vous pourrez ensuite faire un Coller dans le fichier batch.

V Exécution :
Lors de la première exécution du fichier, l'opération peut-être un peu longue, car elle est complète, le commutateur /D ne trouvant pas dans la destination de fichier au même nom, donc, ne pouvant pas comparer les dates. Mais dès la seconde exécution, ce sera nettement plus rapide, car le paramètre /D de la commande xcopy compare la date de modification des fichiers. De ce fait, si par exemple vous avez 1500 fichiers et que seuls 2 fichiers ont été modifiés, seuls ces 2 fichiers seront copiés.
Les 1498 autres fichiers étant identiques, ils ne seront pas pris en compte.

VI Compléments d'information :
Pour en savoir plus sur les options que l'on peut inclure dans la commande, allez dans le menu "Démarrer" puis "Exécuter"et tapez CMD pour afficher la fenêtre de commande DOS. Pour Windows 7, ouvrez Démarrer et tapez directement CMD (commande).

Ensuite tapez :        XCOPY  /?

Vous y remarquerez que parmi les commutateurs, deux mettent en scène l'attribut Archive dont nous avons déjà parlé et qui entrent dans la réalisation de sauvegardes différentielles ou incrémentielles : /A et /M

Vous pouvez ajouter à votre script une 3ème ligne avec cette simple commande
pause
Elle permettra d'arrêter l'exécution du fichier batch, qui attendra votre décision (frapper une touche) pour aller plus loin.

Vous pouvez également automatiser la sauvegarde à chaque démarrage de Windows en incluant le fichier dans votre autoexec.bat (fichier caché à la racine du disque). Il vous suffit alors d’y ajouter la ligne contenant le chemin de votre fichier batch. Je ne vous le conseille pas trop car cela ralentira le démarrage du PC.