[MS DOS] récupérer résultat commande find

Fermé
Darkmikah Messages postés 8 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 12 octobre 2012 - 17 janv. 2007 à 15:19
 billabong_vb - 30 juin 2009 à 17:59
Bonjour à tous,

je débute et voila mon problème dans un batch:
comment récupérer le résultat de la commande FIND sous DOS ?

explications:
je cherche la chaine de caractère ("toto") dans un fichier texte (monfichier.txt).
j'utilise donc : FIND /c "toto" {c:\monfichier.txt}

le /c me permet de savoir le nombre de lignes où je trouve "toto" dans le fichier.
mais comment récupérer ce nombre dans une variable ?

merci d'avance

6 réponses

Salut,

Utilise la commande FOR /F comme ceci:

for /F "usebackq tokens=3 delims= " %i IN (`find /c monfichier`) DO set myvar=%i

ici ce qui est entre ` ` est une commande DOS. C'est le résultat de cette commande qui sera prise par le FOR.

Explication de delims= et tokens=3 :
Mon find d'exmple me renvoyait: ---------- MF2MCAIR.S19: 1
C'est le "1" que je veux! delims=<espace> va couper la chaine en 3 parties, c'est a dire à chaque espace.
j'ai donc 3 chaines "----------" , "MF2MCAIR.S19:" et "1"
Token=3 va prendre la 3eme chaine et la mettre dans la variable i.
A la fin je fais juste un "set myvar=%i" pour reccupérer la valeur et la mettre dans la variable "i"

Attention si tu fais cette commande dans un batch il faut doubler les % et écrire "set mayvar=%%i". Enfin il me semble...

J'espère que c'est pas trop tard pour t'aider!

Voilà.
15