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. 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 :-)
  2. 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. 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 :-)