I. Présentation
Il peut parfois lors de la construction d’un batch être utile de lire /écrire les données dans un ou plusieurs fichiers textes. En batch, nous utilisons pour cela la commande FOR qui à la structure d’une boucle qui s’exécutera une fois par ligne.
II. Pour lister le contenu d’un fichier texte
La commande est la suivante :
FOR /F %%i in ('type Fichier_Lecture.txt') do echo %%i >> Fichier_Ecriture.txt
- /F signifie que nous travaillons sur un fichier (File)
- %%i est l’identifiant de la ligne ou de l’objet que nous voulons traiter
- In (‘type ’) . Tout ce qui suis la commande do sera répété suivant le nombre de ligne du fichier.
Dans cette commande, nous écrivons la ligne dans un autre fichier « Fichier_Ecriture.txt » avec la commande echo. La ligne que nous lisons est représentée là aussi par %%i
III. Avec plusieurs mots par ligne
La commande est sensiblement différente avec plusieurs objets par ligne. Par exemple si le fichier que nous lisons contient une syntaxe comme celle-ci :
Nom1,prenom1 Nom2,prenom2
Un objet est un nom ou un prénom (ici il y en a donc 4).
- Pour lire le fichier et distinguer chaque mot, il faut ajouter « token=1,2 ». C’est-à-dire que lors de la lecture d’une ligne, le programme distinguera 2 parties différentes.
- « delims= , » , nous précisons ensuite le délimiteur des parties dans une ligne, ici, une virgule.
- Lors du traitement des données, le premier mot sera donc %%i et le second %%j (un éventuel troisième sera %%k, etc..)
Nous aurons donc la syntaxe suivante :
FOR /F "tokens=1,2* delims=, " %%i in ('type Fichier_Lecture.txt') do echo %%i %%j >> Fichier_Ecriture.txt
Il est aussi possible de distinguer le caractère de fin de ligne en mettant un eol= avant le token.
Hébergez votre site à partir de 2$ sur 👉👉👉 https://www.tnctech.ca