Simple boucle for et findstr

Résolu/Fermé
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020 - Modifié le 22 juil. 2019 à 16:50
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020 - 23 juil. 2019 à 14:17
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

4 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
23 juil. 2019 à 10:04
hello
peut-on voir les données à lire
0
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020
23 juil. 2019 à 10:37
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 :-)
0
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020
23 juil. 2019 à 11:12
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...
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
23 juil. 2019 à 13:05
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
0
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020
Modifié le 23 juil. 2019 à 14:32
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 :-)
0