Simple boucle for et findstr [Résolu]

Messages postés
221
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
8 octobre 2019
-
Bonjour,
Je suis en train de m'énerver sur une simple boucle for depuis beaucoup trop de temps... :-(
Et j'espère que vous pourrez rapidement me dépanner.
Voilà je tente juste à récupérer l'information qui est devant "Nom_propre" dans les fichiers "site_*" :
for /F %%b in ('dir /B site_*') do (
set exp_fic=%%b
for /F "tokens=2 delims='" %%c in ('findstr Nom_propre %exp_fic%') do set identifiant=%%c
echo %identifiant% >> C:\ka-el.txt
)

Je suis à peu près certain, qu'il y a un "enabledelayedexpansion" à mettre quelquepart...
Mais comme je n'en comprends pas trop le concept, alors je galère !
Est-ce qu'une bonne âme pourrait m'aider?

Merci d'avance pour votre aide ! :-)
Ka-El
Afficher la suite 

4 réponses

Messages postés
17847
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
12 octobre 2019
4472
0
Merci
hello
peut-on voir les données à lire
Commenter la réponse de dubcek
Messages postés
221
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
8 octobre 2019
0
Merci
Bonjour dubcek,
voici un exemple de fichier à lire:

#?COMMENCEMENT
Prenom='FREDERIC'
Nom_propre='DUPOND'
Sexe='masculin'
Aptitude=''
Definition='Habitant des yvelines'
Groupe='HOMME'
Pseudo=''
Langue=''
Etranger='N'
Address='11.rue.Mars/7700'
Unformation=''
Profession='sans'
#?FIN

Merci d'avance pour ton aide :-)
Commenter la réponse de Ka-El
Messages postés
221
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
8 octobre 2019
0
Merci
Dans une fenêtre dos, je parviens à obtenir un résultat en tapant les commandes suivantes:
C:\>set ctrlscript=C:\ka-el.txt
C:\>for /F %b in ('dir /B site_*') do (
C:\>for /F "tokens=2 delims='" %c in ('"type %b | find "Nom_propre""') do echo %c >> %ctrlscript%
C:\>)

Mais par un batch ça ne fonctionne pas...
Commenter la réponse de Ka-El
Messages postés
17847
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
12 octobre 2019
4472
0
Merci
j'ai changé les noms des fichiers
si j'ai bien compris
la 1ère boucle prend une liste de fichiers
la 2ème extrait le nom dans chaque fichier
C:> type f3.txt
#?COMMENCEMENT
Prenom='FREDERIC'
Nom_propre='DUPOND'
Sexe='masculin'
Aptitude=''
Definition='Habitant des yvelines'
Groupe='HOMME'
Pseudo=''
Langue=''
Etranger='N'
Address='11.rue.Mars/7700'
Unformation=''
Profession='sans'
#?FIN

C:> type f3.tx2
#?COMMENCEMENT
Prenom='FREDERIC'
Nom_propre='DUVIADUC'
Sexe='masculin'
Aptitude=''
Definition='Habitant des yvelines'
Groupe='HOMME'
Pseudo=''
Langue=''
Etranger='N'
Address='11.rue.Mars/7700'
Unformation=''
Profession='sans'
#?FIN

C:> type bb.bat
@echo off
set ctrlscript=f4.txt
for /F %%b in ('dir /B f3.*') do (
for /F "tokens=2 delims='" %%c in ('find "Nom_propre" ^< %%b') do echo %%c
)

C:> bb
DUVIADUC
DUPOND
Ka-El
Messages postés
221
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
8 octobre 2019
-
Merci dubcek pour ta réponse.
J'arrive effectivement à créer mon fichier en mettant une redirection:
for /F "tokens=2 delims='" %%c in ('find "Nom_propre" ^< %%b') do echo %%c >> %ctrlscript%

Merci encore pour ton aide :-)
Commenter la réponse de dubcek