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 :

[usebackq] for /f - recopier la 1er valeur de la 3em ligne


Sujet :

Scripts/Batch

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 270
    Par défaut [usebackq] for /f - recopier la 1er valeur de la 3em ligne
    Bonjour tout le monde

    Mon titre est long et peut parlant, je m'exprime donc dans un langage plus compréhensible ...

    J'ai un script qui recopie ( a partir de la fonction nbtstat -A ) les statistiques netbios..

    rappel :

    Connexion au réseau local:
    Adresse IP du noud*: [101.11.124.133] ID d'étendue*: []

    Table de noms NetBIOS des ordinateurs distants

    Nom ________________Type _______État
    ---------------------------------------------
    TOTO___________<00> UNIQUE ______Inscrit
    TATA____________<00> GROUP ______Inscrit
    RARA____________<00> GROUP ______Inscrit


    Adresse MAC = 00-1A-2B-3C-4B-5E
    pour récuperer l'adresse MAC j'utilise cette boucle FOR :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "usebackq tokens=3 delims== " %%m in (`nbtstat -A %1  ^| find "Adresse MAC"`) do (set _mac=%%~m)
    pour récuperer le nom de machine, j'ai du mal a adapter ma boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "usebackq tokens=4 delims== " %%m in (`nbtstat -A %1  ^| find "Nom"`) do (set _mac=%%~m)
    mais la valeur est sur la ligne suivante (ligne 3) du coups j'ai du mal a la récuperer.... :-(

    Pouvez vous m'éclairer svp ?

    Comment imbriquer dans ma boucle, l'istruction "recuperer la 1er valeur de la 3
    em ligne ?"

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 24
    Par défaut
    Salut!
    Et comme ceci?
    @ECHO OFF
    ECHO IP=%1
    FOR /F "tokens=2,3 delims= " %%a IN ('PING -a %1') DO IF "%%b"=="[%1]" SET PC=%%a
    SET PC
    FOR /F "tokens=1 delims= " %%a IN ('NBTSTAT -a %PC% ˆ| FIND "<00>" ˆ| FIND /I /V "%PC%"') DO SET USER=%%a
    SET USER
    Cela t'aiderait?

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 270
    Par défaut
    Merci pour ton aide .
    En faite j'ai essayer ton script :

    J'ai le droit a un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Niveau maximal de récursivité de setlocal a été atteint.
    Niveau maximal de récursivité de setlocal a été atteint.
    Niveau maximal de récursivité de setlocal a été atteint.


    puis j'ai essayer d'adapter mon script en utilisant ta boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    @ECHO off
    if Exist RESULTATS.txt (DEL RESULTATS.txt)
    
    if Exist nom.txt (DEL nom.txt)
    
    ECHO Lancement des scripts   MAC et NOM
    ECHO ...
    for /f "tokens=*" %%I in (ListeIP.txt) do call :nbtstatfonction %%I
    ECHO --------------------------------------------------------
    ECHO Script adresse MAC termine.    1/2
    ECHO les resultats se trouvent dans le fichier RESULTATS.txt
    ECHO --------------------------------------------------------
    
    ECHO ... récupération des noms de machine
    for /f "tokens=*" %%I in (ListeIP.txt) do call :nomfonction %%I
    ECHO --------------------------------------------------------
    ECHO Script NOM machine termine.    2/2
    ECHO les resultats se trouvent dans le fichier nom.txt
    ECHO --------------------------------------------------------
    
    pause
    goto :eof
    
    
    
    :nbtstatfonction
    set _mac= Machine inategnable
    
    for /f "usebackq tokens=3 delims== " %%m in (`nbtstat -A %1  ^| find "Adresse MAC"`) do (set _mac=%%~m)
    (echo:%1    %_mac% )>>"RESULTATS.txt"
    
    
    :nomfonction
    set USER= Machine inategnable
    for /F "tokens=1 delims= " %%a IN ('NBTSTAT -a %1  ˆ| FIND "<00>" ˆ| FIND /I /V "%1"') DO (SET USER=%%a)
    (echo:%1   %USER% )>>"nom.txt"
    Sa me détruit mon fichier texte nom.txt (alors que mon script de récuperation d'adresse MAC) marche bien a la base, la il ne marche plus..

    Pourrais tu (ou quelqu'un d'autre) m'aider?

  4. #4
    Membre émérite
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Par défaut
    Salut tout le monde,

    Citation Envoyé par new-dmx Voir le message
    pour récuperer le nom de machine, j'ai du mal a adapter ma boucle
    Une boucle? Est-ce vraiment nécessaire?

    Maintenant, je ne sais pas ce que tu veux faire. Et je n'ai pas non plus l'impression que tu sais correctement interpréter les informations délivrées par l'utilitaire «nbtstat». Si c'est le cas, un peu de lecture t'aidera peut-être à y voir plus clair et ainsi adapter ton script en conséquence.

Discussions similaires

  1. Réponses: 8
    Dernier message: 03/11/2010, 01h27
  2. [XL-2003] Insertion de ligne vierges, recopie de valeur et suppression de ligne référente.
    Par zewho dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/12/2009, 08h31
  3. boucle for each next : sauter une valeur
    Par scavenger dans le forum VBScript
    Réponses: 1
    Dernier message: 18/02/2009, 10h15
  4. [E-03] Boucle For Next jusqu'à la dernière valeur trouvée
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 27/11/2008, 14h57
  5. recopie de la valeur d'une checkbox
    Par acorna dans le forum Access
    Réponses: 8
    Dernier message: 26/04/2006, 15h12

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