Commande DOS: findstr

Fermé
corxo Messages postés 2 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 19 décembre 2012 - 19 déc. 2012 à 15:20
dubcek Messages postés 18719 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 mai 2024 - 20 déc. 2012 à 08:43
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

dubcek Messages postés 18719 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 mai 2024 5 615
19 déc. 2012 à 16:06
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
corxo Messages postés 2 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 19 décembre 2012
19 déc. 2012 à 17:29
Salut dubcek,

je ne vois rien à l'echo...
Merci pour l'aide, mais va falloir que je cherche encore.
0
dubcek Messages postés 18719 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 mai 2024 5 615
20 déc. 2012 à 08:43
en reprenant ton texte, la version est au champ 8 (donc lettre g), c'est peut-être différent chez toi
0