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 :

probleme d' echo dans un batch


Sujet :

Windows

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Points : 35
    Points
    35
    Par défaut probleme d' echo dans un batch
    Bonjour,

    J'ai crée un script de démarrage dans un batch et je l'ai mi en fichier partagé sur le serveur.Dans mon batch, pour le moment, il y a juste un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @ECHO OFF
    echo %computername%
    quand je lance depuis le serveur mon batch, le résultat est bien le nom du serveur mais quand je le lance d'une autre machine du réseau, j'ai le message suivant pourquoi cela??

    merci

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    La variable %computername% n'est pas déclarée, poste sous W9x ?
    La commande interprétée devenant 'Echo' , elle t'affiche l'état courant de l'affichage dans le batch ( @Echo off ).

    Ce qui prouve qu'il y a de l'écho dans les batchs

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Points : 35
    Points
    35
    Par défaut
    OK je comprend

    mais comment faire pour que dans un batch, je puisse récupérer le nom de ma machine?? il doit bien y avoir une commande DOS qui fait ca non??
    je n'arrive pas a trouver!!!

    merci de votre aide

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Ton batch est sur un serveur NT je suppose.
    Tu déclare un share sur le ou les postes pour y accéder.
    Le poste sur lequel tu l'exécutes doit être sous NT pour accéder à la variable %computername%
    Pour les postes sous W98 il n'existe pas de commande sous DOS pour ce faire ( a vérifier je ne me souviens plus). Tu peux peut être trouver un utilitaire qui le fasse. Dans ce cas tu devras tester la version de l'OS dans le batch.
    A+

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Points : 35
    Points
    35
    Par défaut
    et comment tester la version de l OS?
    il y a une variable qui existe avec une chaine indiquant la version???

  6. #6
    Membre actif

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 77
    Points : 204
    Points
    204
    Par défaut
    Citation Envoyé par zorian
    et comment tester la version de l OS?
    il y a une variable qui existe avec une chaine indiquant la version???
    Tout simplement %OS%

    Note : en tapant :
    tu vois toutes les variables d'environnements utilisées

  7. #7
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Sous W98 je ne suis pas sur que cette variable soit présente.
    Dans ce cas là utilise l'instruction DOS VER
    Sous XP VER renvoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Microsoft Windows XP [version 5.1.2600]
    Mais sous W98 le parsing de chaîne ne semble pas aisé
    Voilà les petites contrariétés du DOS.

    Sinon WSH est-il installé sur les postes en question ?

  8. #8
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Points : 35
    Points
    35
    Par défaut
    oui je pense que WSH est bien installé sur ces postes car le script se lance bien et s'execute....

  9. #9
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Dans ce cas là regarde ce script si cela peut t'aider
    http://members.efn.org/~bretth/vbscript/Gather_Info.htm

  10. #10
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Points : 35
    Points
    35
    Par défaut
    j ai' peut etre trouvé une commande DOS qui retourne le nom réseau de la machine mais comment faire dans un batch pour affecter a une variable ce que retourne une commande???

    merci de votre aide

  11. #11
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    tu peux utiliser ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For /F  "Tokens=*" %%I in ('Echo %computername%') do set PCName=%%I
    Remplace 'Echo %computername%' par le nom de ton programme ('Programme').

    Mais cela ne fonctionne pas sous W98 !
    On tourne en rond,non ?

  12. #12
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Points : 35
    Points
    35
    Par défaut
    oui carrement

    mais est ce que tu crois que c 'est possible d'utiliser la commande net name? (car elle fonctionne sous 98)

    le probleme c'est que cette commande en retourne pas que le nom de la machine. Avec cette commande, il y aurait un moyen de l'avoir le nom??


    merci pour laide ....

  13. #13
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Je n'ai pas de W98 sous la main !
    Essai le filtre FIND pour récupérer uniquement le nom du Poste.
    le mieux serais d'ajouter un soft qui te renvoie le nom du poste et ce sous W98 et NT.

    Le script WSH n'est pas satisfaisant ?
    La lecture de la base de registre, élément commun au 2 OS, me semble être une piste ( pour du script ).

    Sinon j'ai trouvé ça
    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
    @echo off
    :: Parses the output of the "net config" command to get
    :: the computer name. Uses debug to trim
    :: away all unwanted info from the response line.
    set value=
    :: Use net config to get lots of data, then filter it
    net config | find "Computer name" > setvalue.bat
    :: Use DEBUG to overwrite the beginning data
    >  script echo e 0100 "                       set value="
    >> script echo w
    >> script echo q
    debug setvalue.bat < script > nul
    del script
    call setvalue.bat
    del setvalue.bat
    echo Computer name is %value%
    
    &#58;&#58; Miles Fenton in the UK pointed out that while 
    &#58;&#58; "net config" works under Win9x, you'll need to 
    &#58;&#58; use "net config server" or 
    &#58;&#58; "net config workstation" when running under NT.
    C'est du batch à l'ancienne !

    Pour aller plus loin ( un ring sur les batch ? ):
    http://www.fpschultze.de

  14. #14
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Points : 35
    Points
    35
    Par défaut
    j'ai un peu adapté le script et il marche sous 2000 mais je galere tro sous 98..... Je n'arrive pas a obtenir le nom de la machine, pourtant,a part la commande net config, c'est pareil!!!! Ou peut etre qu'il y a des commandes qu'on ne peut pas utilisé sous win 98 mais j arrive po a savoir comment faire pour faire marcher ton script sous 98.....

    merci boucoup

  15. #15
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    envoi moi le résultat de la commande net config>result.txt sous W98.
    Ensuite je regarde qu'on peut faire

  16. #16
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Points : 35
    Points
    35
    Par défaut
    en fait, c est bon, j'ai trouvé ca marche maintenant sous win 98 mais je voulais savoir: est ce que tu peux m expliquer le code du script que tu m a finlé enfin juste ces lignes la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >  script echo e 0100 "                       set value=" 
    >> script echo w 
    >> script echo q 
    debug setvalue.bat < script > nul 
    del script 
    call setvalue.bat
    je comprend pas vraiment le mecanisme....

    et je te dis un enorme merci car tu m'as vraiment débloqué!!

    thx again

  17. #17
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par zorian
    et je te dis un enorme merci car tu m'as vraiment débloqué!!

    thx again
    Merci.
    C'est le but du Forum .

    personnellement je ne connaissais pas cette syntaxe, mais plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     rem Ecrit, dans le fichier nommé Script, la chaîne de caractére &#91;i&#93;"set value="&#91;/i&#93; 
    Echo e 0100 "                       set value=" >Script
    Redirection >,si le fichier existe il est écrasé.
    Redirection >>,ajout en fin de fichier.

    Sous DOS (W98) et sous une application console (NT et supérieure) on peut utiliser les redirections qui permettent de lire les commandes à partir d'un fichier au lieu du clavier ( entrée standard STDIN) et / ou écrire le résultat de la commande dans un fichier texte au lieu de la console/écran ( Sortie standard STDOUT)

    Les lettre e w,q sont des commande de DEBUG ( désassembleur 8086 ).
    e=Edit, 100 étant l'adresse d'insertion en hexa. Pour l'histoire ce qui est en dessous c'est le préfix de segment de programme ( PSP ) des programme DOS 16 bits, etc...
    w=Write
    q=Quit

    ( Lance Debug puis ?=Help )
    Donc ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    debug setvalue.bat < script > nul
    Le programme Debug lit les commandes à partir du fichier script précédemment crée et envoie l'affichage sur le fichier systéme NUL qui n'est rattaché à rien, il est juste utilisé si on ne veut aucun affichage : ni à l'écran ni dans un fichier.

    Dans ce batch je pense qu'il écrase en ajoutant ' set value=' avant le nom du PC récupéré par la commande Net Config.
    Ensuite il exécute le batch qu'il vient de créer, ce batch créant la variable d'environnement %VALUE%.
    Voilà
    A+

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

Discussions similaires

  1. Scilab en mode batch : pas d'echo dans la console
    Par DUDE007 dans le forum Scilab
    Réponses: 4
    Dernier message: 29/10/2011, 09h35
  2. Probleme balise input dans un echo
    Par Canyata dans le forum Langage
    Réponses: 4
    Dernier message: 17/06/2010, 13h53
  3. (echo *> ftp) & (formulaire hta,variable dans un batch)
    Par wnx83 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 30/03/2009, 18h59
  4. [Batch Dos] Probleme de caracteres dans l'export txt
    Par dob2806 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 28/10/2008, 23h37
  5. Problème echo dans shell
    Par Dupont Lionel dans le forum Linux
    Réponses: 5
    Dernier message: 08/02/2005, 13h23

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