Bonjour à tous,
Petit nouveau sur le forum Batch, il faut un début à tout
Je vous sollicite car je suis confronté à un problème avec la commande findstr, je vais vous expliquer.
Avant tout, ce que je cherche à faire, c'est à partir d'une ligne stockée dans une variable, je recherche la présence du mot VALID ou FAILED ou NO_MODEL.
Si un de ces mots est présent, actuellement je fais juste un echo de la ligne. Par la suite, je voudrais récupérer le premier champs de la ligne, et faire d'autres opérations pour lesquels je reviendrai vers vous si je ne m'en sort pas. Mais chaque chose en son temps, en restant sur mon simple echo, j'ai déjà un problème. Ma boucle itère une seule fois. Voici mon code, j'explique ensuite :
Et voici un petit exemple du Fichier à traiter :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 FOR /f "delims=" %%a in ('type %Mon_repertoire%\CAMPAGNE_DE_TEST\RAPPORT.txt') do ( REM echo %%a>> %Mon_repertoire%\CAMPAGNE_DE_TEST\TMP_RAPPORT.txt findstr "VALID" %%a && GOTO Found findstr "FAILED" %%a && GOTO Found findstr "NO_MODEL" %%a && GOTO Found GOTO End :Found FOR /f "tokens=1 delims=:" %%b in ("%%a") do ( echo %%b ) :End echo. )
Donc mon premier FOR me renvoi la première ligne, que le findstr ne peut traiter. Il affiche le message trois fois, puis fin du programme.################################################################
################################################################
### Rapport de la campagne de tests sur PUBPARC
###
### La campagne de tests a ete lancee par kguegan
###
### 29/08/2014 12h05m40s G06R01C04
################################################################
################################################################
#####################################
### Resultats des tests PubParc : ###
#####################################
CMD_ACQ_Fibre_0001001023_0384674312_D38 : VALID
Pas de description pour ce test
--------------------
CMD_TRF_Fibre_0001001023_0384674312_D38 : VALID
Pas de description pour ce test
--------------------
CMD_ACQ_Fibre_0001001023_0384674312_D38 : VALID
Pas de description pour ce test
--------------------
CMD_TRF_Fibre_0001001023_0384674312_D38 : VALID
Pas de description pour ce test
--------------------
QS_NR_CAS12 : FAILED
Pas de description pour ce test
Il itère donc une seule fois...
Any idea ?
Pour info, quand je mets en commentaires le findstr, il itère correctement.
Partager