IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Envoyer le résultat d'une commande dos dans une variable ds un batch.


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 19
    Points
    19
    Par défaut Envoyer le résultat d'une commande dos dans une variable ds un batch.
    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.

  2. #2
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    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

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    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...).

  4. #4
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Montre moi le résultat da ta commande, et dit moi ce que tu veut récupéréer

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    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
    Voilà par exemple, ce que je veux récupérer en rouge.

  6. #6
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Tu veut tout récupéré quoi ?

    On ne peut pas mettre plusieur ligne dans une variable

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    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 ?

  8. #8
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Admetron que l'on veuille récupéré la ligne de 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
    Puis juste l'ip:
    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

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Ok, c'est parfait, merci beaucoup pour ton aide.

  10. #10
    Membre du Club

    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2007
    Messages : 25
    Points : 67
    Points
    67
    Par défaut Merci également
    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 ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exécuter une commande SQL dans une commande Dos
    Par meddly dans le forum Sql*Plus
    Réponses: 2
    Dernier message: 21/11/2013, 11h37
  2. [Batch] Une commande DOS dans 1 variable
    Par agdid04 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 21/06/2013, 16h59
  3. Réponses: 8
    Dernier message: 19/09/2007, 16h51
  4. Résultat d'une commande DOS dans une variable
    Par tomix81 dans le forum Général Python
    Réponses: 2
    Dernier message: 18/05/2007, 11h02
  5. lancer une commande dos dans une page ASP
    Par noznoz78 dans le forum ASP
    Réponses: 4
    Dernier message: 13/02/2006, 19h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo