création de variables dans boucles for

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
kemalao
Batcheur occasionnel
Messages : 1
Enregistré le : 18 nov. 2014 11:32

création de variables dans boucles for

Message par kemalao »

Bonjour,
Cela fait 2 jours que je cherche sur internet mais ne trouve pas de réponse à mon problème :(

Je cherche à récupérer le numéro des lignes contenant une chaîne de caractères particulières dans un fichier .txt afin d'effectuer une action sur les lignes n+1.

Je voulais le faire avec une boucle for :

avec echo j'arrive à afficher le numéro de mes lignes, (mais je ne peux pas les récupérer) :

FOR /F %%a IN ('FIND /N "TEST 10 SORTIE" test.txt') DO echo %%a

Mais lorsque je veux l'intégrer dans une variable ça ne marche pas (commande echo désactivée) :

FOR /F %%a IN ('FIND /N "TEST 10 SORTIE" test.txt') DO (
SET var=%%a
echo %var%
)

Mon objectif serait de pouvoir créer une variable à chaque boucle du for contenant le numéro de la ligne afin de pouvoir agir une fois sorti de la boucle sur les lignes n+1.
Est-ce possible?

Merci :)
Avatar du membre
-- batchman --
Batcheur débutant
Messages : 22
Enregistré le : 29 oct. 2014 11:37

Re: création de variables dans boucles for

Message par -- batchman -- »

Essaye avec l'expansion de variables retardée ;)
En reprenant ton code ça donne ça :

Code : Tout sélectionner

 
@echo off 
setlocal enabledelayedexpansion
FOR /F %%a IN ('FIND /N "TEST 10 SORTIE" test.txt') DO (
SET var=%%a
echo !var! 
)
 

Voilà le principe, plutôt pratique dans la plupart des batchs !
:D
-- batchman --
Répondre