A voir également:
- Ms dos find
- Find and mount - Télécharger - Récupération de données
- 10 commande ms-dos - Guide
- Ava find - Télécharger - Divers Utilitaires
- Fonction ms dos non valide - Forum Windows
- Find junk files - Télécharger - Nettoyage
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à.
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à.
Plus simple sur le même principe :
for /f %i in ('type mon_fichier.txt ^|find /c "toto"') do set myvar=%i
--> Comme dit précédemmment il faut penser à doubler les % pour un batch.
for /f %i in ('type mon_fichier.txt ^|find /c "toto"') do set myvar=%i
--> Comme dit précédemmment il faut penser à doubler les % pour un batch.
Merci sljcfv pour la commande. Elle m'a permis d'ameliorer mon script basé sur le prog de telnet automatique:
tst10.exe
Le but: dés que mon serveur NAS est allumé, il s'annonce par mail avec l'adresse DHCP qu'il a recupéré.
(c'etait la difficulté).
Bien sur un raccourci vers le script est placé dans le rep "Demarrage"
Ca marche tres bien!!
Contenu du script: "envoi_mel.bat" :
@echo off
rem ___________________________________________________________
rem Envoi d'un mail contenant l'IP du serveur avec txt10.exe
rem ___________________________________________________________
cls
echo.
FOR /f "tokens=2 delims=:" %%i in ('ipconfig ^|find "Adresse"') DO set IP=%%i
rem `commande DOS`. C'est le résultat de cette commande qui sera prise par le FOR.
rem delimiteur = :,tokens=2 prendre 2em champ
rem il faut penser à doubler les % pour un batch et eviter "_" dans les noms de variables!
rem ___________________________________________________________
echo L'adresse IP est: %IP%
echo.
echo Envoi d'un mail, Veuillez patienter svp...
echo smtp.orange.fr 25> cmd_smtp.txt
echo WAIT "ABO">> cmd_smtp.txt
echo SEND "HELO ESMTP\m">> cmd_smtp.txt
echo WAIT "250">> cmd_smtp.txt
echo SEND "MAIL FROM: <Serveur.NAS@orange.fr>\m">> cmd_smtp.txt
echo WAIT "250">> cmd_smtp.txt
echo SEND "RCPT TO: <chez.moi@orange.fr>\m">> cmd_smtp.txt
echo WAIT "250">> cmd_smtp.txt
echo SEND "DATA\m">> cmd_smtp.txt
echo Wait " ">> cmd_smtp.txt
echo SEND "Subject: Serveur de sauvegarde disponible\mLE serveur NAS est en ligne a l'adresse: %IP% \m.\m">> cmd_smtp.txt
echo SEND "RSET\m">> cmd_smtp.txt
echo WAIT "Ok">> cmd_smtp.txt
echo SEND "QUIT\m">> cmd_smtp.txt
echo WAIT "Ok">> cmd_smtp.txt
echo SEND "QUIT\m">> cmd_smtp.txt
rem ___________________________________________________________
tst10 /r:cmd_smtp.txt /o:output.log
rem ___________________________________________________________
Title Invite
del cmd_smtp.txt
cls
tst10.exe
Le but: dés que mon serveur NAS est allumé, il s'annonce par mail avec l'adresse DHCP qu'il a recupéré.
(c'etait la difficulté).
Bien sur un raccourci vers le script est placé dans le rep "Demarrage"
Ca marche tres bien!!
Contenu du script: "envoi_mel.bat" :
@echo off
rem ___________________________________________________________
rem Envoi d'un mail contenant l'IP du serveur avec txt10.exe
rem ___________________________________________________________
cls
echo.
FOR /f "tokens=2 delims=:" %%i in ('ipconfig ^|find "Adresse"') DO set IP=%%i
rem `commande DOS`. C'est le résultat de cette commande qui sera prise par le FOR.
rem delimiteur = :,tokens=2 prendre 2em champ
rem il faut penser à doubler les % pour un batch et eviter "_" dans les noms de variables!
rem ___________________________________________________________
echo L'adresse IP est: %IP%
echo.
echo Envoi d'un mail, Veuillez patienter svp...
echo smtp.orange.fr 25> cmd_smtp.txt
echo WAIT "ABO">> cmd_smtp.txt
echo SEND "HELO ESMTP\m">> cmd_smtp.txt
echo WAIT "250">> cmd_smtp.txt
echo SEND "MAIL FROM: <Serveur.NAS@orange.fr>\m">> cmd_smtp.txt
echo WAIT "250">> cmd_smtp.txt
echo SEND "RCPT TO: <chez.moi@orange.fr>\m">> cmd_smtp.txt
echo WAIT "250">> cmd_smtp.txt
echo SEND "DATA\m">> cmd_smtp.txt
echo Wait " ">> cmd_smtp.txt
echo SEND "Subject: Serveur de sauvegarde disponible\mLE serveur NAS est en ligne a l'adresse: %IP% \m.\m">> cmd_smtp.txt
echo SEND "RSET\m">> cmd_smtp.txt
echo WAIT "Ok">> cmd_smtp.txt
echo SEND "QUIT\m">> cmd_smtp.txt
echo WAIT "Ok">> cmd_smtp.txt
echo SEND "QUIT\m">> cmd_smtp.txt
rem ___________________________________________________________
tst10 /r:cmd_smtp.txt /o:output.log
rem ___________________________________________________________
Title Invite
del cmd_smtp.txt
cls
Bonjour,
Je ne sais si cela peux t'aider mais si la commande
FIND /c "toto" {c:\monfichier.txt}
Met à jour la variable system %ERRORLEVEL%
Si elle vaut :
1 c’est qu’il n’a pas trouvé
0 c’est qu’il a trouvé au moins une occurrence toto
Stéphane
Je ne sais si cela peux t'aider mais si la commande
FIND /c "toto" {c:\monfichier.txt}
Met à jour la variable system %ERRORLEVEL%
Si elle vaut :
1 c’est qu’il n’a pas trouvé
0 c’est qu’il a trouvé au moins une occurrence toto
Stéphane
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour à tous,
j'ai un petit souci avec la commande FIND également.
en fait, je sais m'en servir quand j'ouvre une commande MS DOS sous windows, mais lorsque je boote sur une disquette de boot (faites par windows me), il ne me reconnais pas la commande find
est ce quelqu'un a une explication à cela
Merci d'avance
j'ai un petit souci avec la commande FIND également.
en fait, je sais m'en servir quand j'ouvre une commande MS DOS sous windows, mais lorsque je boote sur une disquette de boot (faites par windows me), il ne me reconnais pas la commande find
est ce quelqu'un a une explication à cela
Merci d'avance