Ici , je vais vous montrer le plus simplement possible comment se servir de la commande "FOR" :
Tous d'abord, la commande "FOR" veut dire "Pour", c'est une commande permettant de faire des boucles.
Sans paramètre précis, elle sert à donné une valeur à une variable puis une autre ...
FOR %%A IN (valeur que va prendre %%A) DO CommandeAExecuter
Exemple :
- Code:
-
@ECHO OFF
FOR %%A IN (0 1 2 3 4 5 6 7 8 9 10) DO ECHO.%%A
PAUSE
Traduction :
%%A va prendre la valeur de 0, de 1, de 2 ... tout en - a chaque fois - executant la commande spécifier (ici : ECHO.%%A)
Donc le programme va afficher :
0
1
2
3
4
5
6
7
8
9
10
Appuyer sur une touche pour blablabla ...
Il existe plusieurs paramètre , nous allons en voir que 2 : /F et /L ,
Le paramètre /L sert a faire une incrémentation a chaque boucle , en commençant par une certaine valeur appeler l'origine et en finissant par une autre nommée la fin :
L'origine et la fin sont a spécifier dans la parenthèse , ainsi que le pas,
La variable %%A (je dis bien la variable %%A et non pas A !) va prendre pour premiére valeur l'origine ,elle va étre incrémenter du pas tous en executant la commande spécifier, jusqu'a être égale a la fin.
Syntaxe:
- Code:
-
FOR /L %%A IN (Origine,pas,fin) DO CommandeAExecuterAChaqueBoucle
Exemple:
- Code:
-
@ECHO OFF
FOR /L %%A IN (0,1,10) DO ECHO.%%A
PAUSE
Ce code fais exactement la même chose que le précédant.
Le paramètre /F sert à fouiner dans des fichiers, ceci est un peu plus (beaucoup ?) compliquer,
Imaginons un fichier texte nommé "Ex", il aura l'extension .txt
Son nom complet sera donc Ex.txt
Il contient ceci :
- Code:
-
12.38.28
17.12.00
07.01.56
23.21.04
Il contient une liste d'heures quelconque
(Pour les exemples qui suivront nous aurons besoin de ce fichier, donc créer le.)
La boucle FOR (Ou la commande) a besoin de quelques options pour fonctionner :
-Le nombre de colonne
-Les caractère constituant les délimitations de ces colonnes
Le but est très simple :
afficher l'heure écrite dans le fichier (donc les heures , les minutes , et les secondes) du fichiers Ex.txt
pour cela la 1ere colonne contiendra les heures, la seconde colonnes contiendra les minutes et la dernière ; les secondes.
Syntaxe :
- Code:
-
FOR /F "LesOptions" %%VariableDeDébut IN (UnFichierAvecSonExtension) DO CommandeAExecuter
Si on écrit ceci :
- Code:
-
FOR /F %%A IN (Ex.txt) DO ECHO.%%A
PAUSE
Il va afficher tout le contenu du fichier par ligne , donc
Lors de la première boucle, %%A contiendra la première ligne du fichier c'est a dire : 12.38.28
Lors de la deuxième boucle, %%A contiendra la deuxième donc : 17.12.00
Etc
...
Donc il affichera :
12.38.28
17.12.00
07.01.56
23.21.04
Appuyer sur un truc pour continuer ...
Donc pour résumer, %%A va prendre tout les caractères de toutes les lignes (Sauf une exception que nous verrons)
C'est là que les option vont être utile !
Dans les options on va rajouter à la Boucle FOR un moyen de "trier" les caracteres pris par %%A.
NOTE : En programmation, une suite de caractères (Nombre ou Lettre) s'appelle une Chaine de caractère.
On peut ainsi définir des options qui seront enregistrer dans des variables propre a la boucle FOR :
Il existe 4 options paramétrable:
_ La variable EOL sert à définir un caractère qui va permettre a la boucle FOR d'ignorer TOUTE les lignes commençant par ce caractère . (Par défault il n'y a pas de caractère)
_ La variable SKIP sert à définir le nombre de lignes à ignorer en début de fichier.
_ La variable TOKENS sert à définir le nombre de colonnes pris par la boucle FOR .
Note : La première colonne va être enregistrer dans la variable de départ (Ici %%A) la seconde donc, dans %%B la troisième dans %%C ... Etc.
_ La variable DELIMS sert à définir les caractère servant à délimiter TOUTE les colonnes, si vous vouler plusieurs caractères différent , il faut les espacer par des virgules.
Eeet a suivre ...