Bonjour,
Dans un script batch basique, comment puis-je retourner le résulat d'une commande dos vers une variable et non dans un fichier ?
A l'aide d'un pipe| ?
Merci de votre aide.
Bonjour,
Dans un script batch basique, comment puis-je retourner le résulat d'une commande dos vers une variable et non dans un fichier ?
A l'aide d'un pipe| ?
Merci de votre aide.
On fait ca avec un boucle for, et la commande set.
Mais c'est quoi ta commande ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for /f "delims=" %%i in ('ta commande') do Set VrTemp=%%i
Merci, effectivement, ça fonctionne bien...j'ai quand même un petit problème, le résultat de la commande est sur plusieurs lignes et là je n'ai récupéré que la dernière, j'ai essayé en jouant avec le paramètre tokens...mais sans succès.
En fait les résultats que je veux stocker dans des variables pour les tester ensuite sont des résultats de commande réseau du type (ipconfig, ping, tracert, nslookup, etc...).
Montre moi le résultat da ta commande, et dit moi ce que tu veut récupéréer
Voilà par exemple, ce que je veux récupérer en rouge.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 C:\Documents and Settings\parsd-e-evrard>ping www.yahoo.com Envoi d'une requête 'ping' sur www.yahoo-ht3.akadns.net [87.248.113.14] avec 32 octets de données : Réponse de 87.248.113.14 : octets=32 temps=26 ms TTL=42 Réponse de 87.248.113.14 : octets=32 temps=22 ms TTL=42 Réponse de 87.248.113.14 : octets=32 temps=26 ms TTL=42 Réponse de 87.248.113.14 : octets=32 temps=23 ms TTL=42 Statistiques Ping pour 87.248.113.14: Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%), Durée approximative des boucles en millisecondes : Minimum = 22ms, Maximum = 26ms, Moyenne = 24ms
Tu veut tout récupéré quoi ?
On ne peut pas mettre plusieur ligne dans une variable
Ok, ça règle le problème et si je veux choisir une ligne spécifique qui ne soit pas la dernière, c'est possible relativement simplement ?
Admetron que l'on veuille récupéré la ligne de l'ip:
Puis juste l'ip:
Code : Sélectionner tout - Visualiser dans une fenêtre à part for /f "delims=" %%i in ('ping www.yahoo.com ^| findstr /i /c:"Statistiques Ping"') do echo %%i
Code : Sélectionner tout - Visualiser dans une fenêtre à part for /f "tokens=4 delims= " %%i in ('ping www.yahoo.com ^| findstr /i /c:"Statistiques Ping"') do echo %%i
Ok, c'est parfait, merci beaucoup pour ton aide.
Parfait, merci beaucoup pour toutes ces explications ...
Après avoir installé l'utilitaire paste je peux faire ceci :
for /f "delims=" %%i in ('C:\endroit_du\paste.exe ') do SET MA_VARIABLE=%%i
qui copie mon presse papier dans une variable. Si quelqu'un voit mieux pour faire automatique ?
Partager