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

Windows Discussion :

[MS-DOS/WinNT] Traitement de réponse d'une commande


Sujet :

Windows

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut [MS-DOS/WinNT] Traitement de réponse d'une commande
    Bonjour à tous !

    Je rencontre un problème sous MSDOS (WinNT), j'ai une commande qui me renvoie ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Key founded: \Control\Services\oxE4\
    Computer: localhost
    End of command
    Je voudrais affecter " \Control\Services\oxE4\" à une variable "variable" que j'utiliserai par la suite dans le script, je ne vois pas comment faire ça sous MSDOS ?

    Merci d'avance!
    RedVivi

  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
    Citation Envoyé par redvivi
    Je voudrais affecter " \Control\Services\oxE4\" à une variable "variable" que j'utiliserai par la suite dans le script, je ne vois pas comment faire ça sous MSDOS ?i
    La syntace est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set NonDeTaVariable=\Control\Services\oxE4\

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par koKoTis
    La syntace est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set NonDeTaVariable= \Control\Services\oxE4\
    Pardon, je me suis très mal exprimé, le problème c'est que je voudrais faire ça de manière dynamique, car ce ne sera pas toujours " \Control\Services\oxE4\", le chemin varie en fait...

  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
    Mais le répertoire s'appelle toujours oxE4 ?

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Ha non il peut changer.

  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
    Et le non de ton exe c'est quoi ?

  7. #7
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    C'est un chemin de clé de base de registre, le nom de la clé varie également, la solution serait d'enlever les x premiers caractères de la première ligne de la réponse de la commande et d'affecter cette ligne tronquée à la variable....Enfin ça c'est la théorie

  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
    Donc tu veut récupérer le chemin dans le message d'erreur renvoyer par ta commande ? c'est bien ca ?

    Si oui, donne moi ta commande

  9. #9
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Oui c'est bien ça, hormis que ce n'est pas un message d'erreur, juste la réponse.

    La commande qui renvoie ce que j'ai écrit au dessus est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanreg Control \lm -kve
    (Ressource Kit Windows NT 4.0)

  10. #10
    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
    Essye ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=2 delims=:" %%i in ('scanreg Control \lm -kve ^| findstr /i /c:"Key founded"') do Set VrChem=%%i
    Ca devrai fonctionner, tien moi au courant

  11. #11
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Ok, à première vue ça fonctionne, j'essaye demain matin sur une machine de prod et je te tiens au courant ! Merci beaucoup en tout cas !

    RedVivi

  12. #12
    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
    De rien

  13. #13
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Alors, le script fonctionne mais la réponse n'est pas la même sous XP que sous NT !

    Voici le script que j'utilise:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    cd c:\
    
    for /f "tokens=2 delims=:" %%i in ('scanreg IPAddress \lm\SYSTEM\CurrentControlSet\Services /kvde ^| findstr /i /c:"Key"') do Set VrChem=%%i
    echo %VrChem:~2%
    
    pause
    Avec ça j'obtiens:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <nom de la carte( variable)>\Parameters\Tcpip"
    Je voudrais virer la guillemet, comment faire !?

    PS: Il ne faut pas utiliser "garder x caractères en partants du premier" car la longueur de la réponse varie.

    Merci d'avance !
    RedVivi

  14. #14
    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
    Pour virer le guillement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    cd c:\
    
    for /f "tokens=2 delims=:" %%i in ('scanreg IPAddress \lm\SYSTEM\CurrentControlSet\Services /kvde ^| findstr /i /c:"Key"') do Set VrChem=%%i
    set VrChem=%VrChem:"=%
    echo %VrChem:~2%
    
    pause

  15. #15
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Bon....parfait, (subjugé lol)

    Merci beaucoup, si j'ai encore besoin d'aide, je te rappelle !

  16. #16
    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
    Citation Envoyé par redvivi
    Merci beaucoup, si j'ai encore besoin d'aide, je te rappelle !
    Pas de probléme

  17. #17
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Ca n'a pas tardé lol, j'ai une commande qui me renvoie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MULTI_SZ           IPAddress        10.0.0.1;
    Je ne peux pas utiliser de délimiters là, vu que je n'ai pas de "=" ni d'autres choses, étant donné que je veux extraire

    Comment faire ? (attention, l'adresse IP peut etre 192.3.4.2, il y a un changement de longueur)

    Autre chose: j'ai essayé de modifier la variable VrChem pour n'afficher que <nom de la carte( variable)> avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET VrChem=%VrChem:0,-x%
    mais ça ne fonctionne pas ça me met toujours le chemin complet.

  18. #18
    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
    Citation Envoyé par redvivi
    Je ne peux pas utiliser de délimiters là, vu que je n'ai pas de "=" ni d'autres choses, étant donné que je veux extraire
    .
    Tu peut utiliser le delimitateur espace


    Citation Envoyé par redvivi
    Autre chose: j'ai essayé de modifier la variable VrChem pour n'afficher que <nom de la carte( variable)> avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET VrChem=%VrChem:0,-x%
    La il faut faire une double boucle avec les delimitateur ( et ) pour extraire ce qu'il y a entre les parenthéses

  19. #19
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 179
    Points : 45
    Points
    45
    Par défaut
    Oulà, complexe....la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=2 delims=:" %%i in ('scanreg IPAdress \lm /kvde ^| findstr /i /c:"Key"') do Set VrChem=%%i
    me renvoie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "\El90x2\Parameters\Tcpip"
    (Attention à l'espace devant la réponse)

    Il me faudrait juste

    La commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REG QUERY HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet%VrChem:~1%\IPAddress
    me donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MULTI_SZ       IPAddress    172.63.187.218
    Il me faudrait juste

    J'ai essayé de bricoler mais je n'y arrive pas, peux tu m'aider stp ?

    Merci d'avance!
    RedVivi

  20. #20
    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
    Citation Envoyé par redvivi
    Il me faudrait juste El90x2
    Alors pour ne récupérer que El90x2, essaye ceci, en prenant \ pour délimitateur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=2 delims=\" %%i in ('scanreg IPAdress \lm /kvde ^| findstr /i /c:"Key"') do Set VrChem=%%i

    Citation Envoyé par redvivi
    Il me faudrait juste 172.63.187.218
    Et la essaye ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=3 delims= " %%i in ('REG QUERY HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet%VrChem:~1%\IPAddress') do Set VrChem=%%i

Discussions similaires

  1. [MS-DOS] '.' n'est pas reconnu comme une commande interne
    Par Mithryl dans le forum Windows 7
    Réponses: 4
    Dernier message: 17/01/2013, 23h07
  2. Récupérer la réponse d'une console DOS
    Par twixi dans le forum VB.NET
    Réponses: 3
    Dernier message: 21/07/2008, 05h19
  3. Traitement des résultats si une seule réponse
    Par Metallic-84s dans le forum Débuter
    Réponses: 2
    Dernier message: 20/03/2006, 11h57
  4. [DOS] pré-configurer la réponse d'une commande
    Par Hide dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 10/01/2006, 18h01
  5. [VB6] probleme de redirection d'une commande DOS
    Par WriteLN dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/06/2003, 09h36

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