Commande DOS: findstr

corxo Messages postés 3 Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,

J'essaie depuis quelques jours à isoler une valeur dans un ficher texte pour la mettre dans une variable à l'aide de la fonction findstr.

Voici la "command line":
findstr /r /c:"#define VERSION_FIRMWARE \"[0-9].[0-9][0-9][0-9]\"" "C:\test.txt"

Celle-ci me revoit l'information suivante (il y a des caractères non lisible sur la ligne, c'est normal...):
? ?Macros_Systeme? ¶__Macros_Systeme.lib???E??í '?ñ ????#define VERSION_FIRMWARE "3.327"

La valeur qui m'intéresse est le 3.327.
Quelqu'un aurait une idée pour isoler le 3.327 et la mettre dans une variable (set var=...).

J'ai essayé avec le FOR /f mais je n'y arrive pas pour l'instant.

Merci,

1 réponse

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    C:> type cc.bat
    @echo off
    setlocal enableDelayedExpansion
    for /F "tokens=1-8" %%a in ('findstr /r /c:"#define VERSION_FIRMWARE \"[0-9].[0-9][0-9][0-9]\"" fichier.txt') do (
    set v=%%g
    echo !v:"=! )
    C:> cc
    3.327
    
    0
    1. corxo Messages postés 3 Statut Membre
       
      Salut dubcek,

      je ne vois rien à l'echo...
      Merci pour l'aide, mais va falloir que je cherche encore.
      0
    2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      en reprenant ton texte, la version est au champ 8 (donc lettre g), c'est peut-être différent chez toi
      0