Simple boucle for et findstr

Résolu
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

  1. 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 :-)
    1. 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...
      1. Contributeur
        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
        1. 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 :-)