Simple boucle for et findstr

Résolu
Ka-El Messages postés 279 Statut Membre -  
Ka-El Messages postés 279 Statut Membre -
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. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    peut-on voir les données à lire
    0
  2. Ka-El Messages postés 279 Statut Membre
     
    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
  3. Ka-El Messages postés 279 Statut Membre
     
    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
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
    1. Ka-El Messages postés 279 Statut Membre
       
      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