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 :

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.
)
Et voici un petit exemple du Fichier à traiter :

################################################################
################################################################
### 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
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.
Il itère donc une seule fois...

Any idea ?

Pour info, quand je mets en commentaires le findstr, il itère correctement.