Citation :
9°) Écriture dans les fichiers Batch
Le caractère de redirection ">"
Écrire dans des fichiers
Vous pouvez écrire dans des fichiers, à l'aide de commande Batch.
Nous avons dit dans le chapitre 1 que la commande ECHO servait en fait à "écrire"
quelque chose quelque part. Pour l'instant, nous nous sommes contenté d'"écrire"
sur l'écran, mais rien ne nous empêche de le faire sur le disque.
Nous allons aussi utiliser les chevrons (">" ou "<" ) comme caractères de redirection.
Vous devez veiller au nombre de chevrons, et à leur sens, en effet, la sortie sur le
fichier en dépendra.
Écriture en mode "ajout" (Append)
Ce mode permet d'ajouter des données sans écraser celles qui étaient inscrites
précédemment dans le fichier.
Nous allons utiliser 2 chevrons, orientés vers la droite, qui pointent vers le nom de
fichier à utiliser :
Echo Texte à écrire>>c:\texte.txt
Ainsi, tout le texte compris entre "Echo" et les ">>" sera écrit dans "c:\texte.txt".
? Si le fichier n'existe pas, il sera créé et les données y seront inscrites sans générer
d'interruptions ou d'erreurs, sauf si le ou les répertoires le contenant n'existent euxmême
pas.
? Le texte à inscrire sera ajouté à la fin du fichier
? Une nouvelle ligne sera créée dans le fichier à chaque fois que vous appellerez la
commande
Exemple pratique : vous souhaitez exécuter le programme StartServer.exe situé
dans C:\www, au démarrage de votre ordinateur. Il vous suffira d'écrire :
Echo C:\www\StartServer.exe>>C:\Autoexec.bat
La commande DOS c:\www\StartServer.exe sera inscrite dans Autoexec.bat et
lancée à chaque démarrage.
Écriture en mode "Ecrasement" (Output)
Contrairement au mode d'ajout, le mode d'écrasement efface toutes les données
inscrites précédemment dans le fichier, puis inscrit la ligne transmise.
Nous allons utiliser 1 seul chevron, orienté vers la droite, qui pointe vers le nom de
fichier à utiliser :
Echo Texte à écrire>c:\texte.txt
Comme précédemment, tout le texte compris entre "Echo" et les ">>" sera écrit dans
"c:\texte.txt".
? Si le fichier n'existe pas, il sera créé et les données y seront inscrites sans générer
d'interruptions ou d'erreurs sauf si le ou les répertoires le contenant n'existent euxmême
pas
? Le contenu du fichier sera automatiquement effacé. Toutes les données seront
perdues et remplacées par le texte entre "echo" et ">"
Par exemple, vous souhaitez sauvegarder le contenu d'une variable (Ici %CPT%)
dans le fichier "score.dat" situé dans C:\MonJeu\Scores\ :
Echo %CPT%>>C:\MonJeu\Scores\Score.dat
Comme nous l'avons dit plus haut si le fichier n'existe pas, il sera créé et les données
y seront inscrites sans générer d'interruptions ou d'erreurs sauf si le ou les
répertoires le contenant n'existent eux-même pas. Par conséquent, si les dossiers
"MonJeu" et "Scores" ne sont pas présent sur le disque au moment de l'exécution de
la commande, MS-DOS affichera un message d'erreur et le fichier ne sera pas crée.
Il va également de soi que la variable CPT doit-être précédemment définie, en
utilisant une commande de la forme Set CPT=20000 .
Ecrire le résultat d'une commande dans des fichiers
Vous pouvez inscrire le résultat d'une commande DOS dans un fichier, avec les deux
modes décrits plus haut ("Écrasement" et "Ajout" ).
Pour cela, vous n'avez qu'à supprimer "Echo", et remplacer le texte à écrire dans le
fichier par une commande MS-DOS.
Par exemple :
dir c:\*.*>>c:\listing.txt
Le contenu du disque C:\ sera inscrit en mode "rajout" dans le fichier listing.txt
|