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 :

Attribuer liste dans une variable


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 9
    Par défaut [Résolu] Attribuer liste dans une variable
    Bonjour,

    J'ai un fichier ip.txt qui liste des ip et le nom de l'unité associée :
    xp 192.168.1.5
    linux 192.168.1.4

    J'ai un fichier bat qui va chercher ces ip pour les pinger :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for /f "delims=	   tokens=2" %%a in (c:\batch\ip.txt) do ping %%a -n 2
    CLS
    if errorlevel 1 net send redzen L'unite %%a est tombee
    Comme vous le voyez si mon ping est HS il envoie un message pour indiquer que l'unité est tombée. Le pb c'est que mon net send affiche ma variable %%a comme %a et non l'IP qui a été pingée. Ou est l'erreur?

    Sinon ce qui m'intéresse de récupérer dans mon fichier ip.txt est la première colonne plutôt que la deuxième pour afficher dans mon net send. J'avais donc pensé déclarer une variable du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set var1="delims=	 tokens=1" in (c:\batch\ip.txt)
    Je n'aurai alors plus qu'a récupérer la variable %var1% pour mon net send. Je pourrais même créer une autre variable pour pinger mes ip :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set var2="delims=	 tokens=2" in (c:\batch\ip.txt)
    J'aurai alors le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    set var1="delims=	 tokens=1" in (c:\batch\ip.txt)
    set var2="delims=	 tokens=2" in (c:\batch\ip.txt)
    
    ping %var1% -n 2
    if errorlevel 1 net send redzen L'unite %var2% est tombee
    Là on aurait alors quelque chose de propre et clair. Seulement vous allez me dire que ce n'est pas possible d'associer un delims/tokens à un set (peut-être que si mais je n'ai rien trouvé la dessus)... Mais ce serait tellement plus pratique. Il doit bien exister quelque chose qui s'en rapproche ?

    Dernière chose : Prenons l'ex de la machine linux qui est HS => à chque fois que mon batch repassera sur la machine pour la pinger il affichera le message "l'unité linux est tombée" ce qui risque de créer une accumulation de messages très importants si la machine rest plantée plusieurs minutes. Est-il possible d'indiquer à net send de ne pas accumuler les messages s'il y en a déja un d'afficher ? => je n'ai rien trouvé dans "net send /?"

    Merci de votre aide

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Par défaut
    Je n'ai pas pu testé le net send mais le début fonctionne
    @echo off
    SETLOCAL EnableDelayedExpansion
    for /f "tokens=2 delims= " %%a in ('type "c:\ip.txt"') do ping %%a -n 2
    if errorlevel 1 net send redzen L'unite %%a est tombee )
    pour le net send je pense que tu devrais stocker la réponse dans un fichier log qui te servira pour l'envoie dans la commande net send.
    Si le fichier log existe et que la reponse n'est pas égal à "linux delai depassé" alors net send redzen L'unite %%a est tombee

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 9
    Par défaut
    Bonjour Acris,

    Superbe idée pour le fichier log. Je teste ça ce soir.
    Sinon que penses-tu du reste de mes interrogations

Discussions similaires

  1. [VxiR2] Utiliser une invite de liste dans une variable
    Par erwann_ dans le forum Deski
    Réponses: 3
    Dernier message: 21/02/2012, 15h29
  2. [XSLT] liste d'élements dans une variable de type array ?
    Par r-zo dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 15/01/2010, 09h16
  3. [MySQL] récupérer l'item selctionné d'une liste déroulante dans une variable php
    Par car0line dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 22/04/2009, 14h30
  4. Réponses: 5
    Dernier message: 04/12/2008, 15h58
  5. Réponses: 7
    Dernier message: 09/12/2007, 11h51

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