Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Stocker le résultat d'une commande dans une variable

2 réponses
Avatar
Bruno Guerpillon
Bonjour

Je cherche à stocker le résultat d'une commande dans une variable (shell).

Je sais faire ça sous unix, par exemple :

n=`ping toto`
echo $n

La question est donc comment faire la même chose dans un CMD windows XP ?

Cordialement

Bruno

2 réponses

Avatar
Jean-Claude BELLAMY
Dans le message :450559b2$0$22580$,
Bruno Guerpillon a pris la peine d'écrire ce qui suit :
Bonjour

Je cherche à stocker le résultat d'une commande dans une variable
(shell).
Je sais faire ça sous unix, par exemple :

n=`ping toto`
echo $n

La question est donc comment faire la même chose dans un CMD windows
XP ?


A l'aide de la commande FOR :
@echo off
set command=%*
FOR /F "delims=" %%C in ('%command%') do set Result=%%C
echo La commande renvoit comme resultat : %result%

P.ex. :
I:>testcomm.bat time /T
La commande renvoit comme resultat : 16:41

I:VBS>testcomm.bat ping www.inria.fr
La commande renvoit comme resultat : Minimum = 46ms, Maximum = 47ms,
Moyenne = 46ms

NB: Dans le cas de ping, comme il y a plusieurs lignes, seule la dernière
est affichée.
Si on ne veut que la quatrième (en sautant donc les 3 1ères), il faut
modifer le script ainsi :
@echo off
set command=%*
FOR /F "skip=3 delims=" %%C in ('%command%') do set Result=%%C & goto suite
:suite
echo La commande renvoit comme resultat : %result%


Cela donnera alors :
I:>testcomm.bat ping www.inria.fr
La commande renvoit comme resultat : Réponse de 138.96.146.2 : octets2
tempsG ms TTLR

A toi d'adapter à ce que tu veux, je t'ai donné les bases ...

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr

Avatar
Bruno Guerpillon
"Jean-Claude BELLAMY" a écrit dans le
message de news:
Dans le message :450559b2$0$22580$,
Bruno Guerpillon a pris la peine d'écrire ce qui suit :
Bonjour

Je cherche à stocker le résultat d'une commande dans une variable
(shell).
Je sais faire ça sous unix, par exemple :

n=`ping toto`
echo $n

La question est donc comment faire la même chose dans un CMD windows
XP ?


A l'aide de la commande FOR :
@echo off
set command=%*
FOR /F "delims=" %%C in ('%command%') do set Result=%%C
echo La commande renvoit comme resultat : %result%

P.ex. :
I:>testcomm.bat time /T
La commande renvoit comme resultat : 16:41

I:VBS>testcomm.bat ping www.inria.fr
La commande renvoit comme resultat : Minimum = 46ms, Maximum =
47ms, Moyenne = 46ms

NB: Dans le cas de ping, comme il y a plusieurs lignes, seule la dernière
est affichée.
Si on ne veut que la quatrième (en sautant donc les 3 1ères), il faut
modifer le script ainsi :
@echo off
set command=%*
FOR /F "skip=3 delims=" %%C in ('%command%') do set Result=%%C & goto
suite
:suite
echo La commande renvoit comme resultat : %result%


Cela donnera alors :
I:>testcomm.bat ping www.inria.fr
La commande renvoit comme resultat : Réponse de 138.96.146.2 :
octets2 tempsG ms TTLR

A toi d'adapter à ce que tu veux, je t'ai donné les bases ...

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr




Merci, c'est exactement ce que je cherchais.