Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
974 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  DOS - mettre resultat d'une commande dans variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

DOS - mettre resultat d'une commande dans variable

n°1220248
golum666
Posté le 11-10-2005 à 10:59:19  profilanswer
 

Bonjour,
 
j'essaie depuis hier de mettre le resultat d'une commande dans une variable (invitre de commande DOS sous windows xp mais il faudrait que ca marche aussi sous 2000 et nt)
j'ai essayé la commande set. ca donne ca:
 
set NOM_VARIABLE=nslookup NOM_PC|find "Address"|more +1
 
la variable n'est pas créée...
 
une idée ?! en sachant que le resultat de la commande normale retourne :
Address : 10.XX.XX.XX
et que je voudrais à terme n'avoir que l'adresse IP dans la variable (sans le "Address" )
 
merci d'avance


---------------
pourquoi remettre à demain ce que l'on peut faire ... après demain !!!
mood
Publicité
Posté le 11-10-2005 à 10:59:19  profilanswer
 

n°1220407
wackevat
Posté le 11-10-2005 à 14:29:38  profilanswer
 

Tu peux rediriger la sortie dans un fichier temporaire puis récupérer le contenu de celui-ci. La syntaxe que tu as utilisée n'est pas acceptée.

n°1220446
golum666
Posté le 11-10-2005 à 14:50:17  profilanswer
 

merci c'est effectivement ce que je comptais faire...
nslookup NOM_PC|find "Address"|more +1 > c:\toto
 
comment on recupere ce que contient un fichier dans une variable par contre ?
set VAR= ???
 
encore merci


---------------
pourquoi remettre à demain ce que l'on peut faire ... après demain !!!
n°1220484
wackevat
Posté le 11-10-2005 à 15:16:19  profilanswer
 

set /p VAR=<c:\toto

n°1220501
golum666
Posté le 11-10-2005 à 15:35:22  profilanswer
 

merci


---------------
pourquoi remettre à demain ce que l'on peut faire ... après demain !!!
n°1221109
golum666
Posté le 12-10-2005 à 12:25:16  profilanswer
 

petite question sans rapport comment faire pour passer des caractères comme é ou è dans un batch.
j'essaie de copier des fichiers dans c:\documents and settings\XX\Menu démarrer par exemple mais je me fais jeter parce que j'ai a l'execution du script un ù à la place du é...


---------------
pourquoi remettre à demain ce que l'on peut faire ... après demain !!!
n°1221141
wackevat
Posté le 12-10-2005 à 13:34:58  profilanswer
 

Tu as deux méthodes :
- passer par leur nom court :
MENUDM~1
 
- rédiger ton script dans Wordpad ou un éditeur qui supporte la conversion ANSI-OEM (PowerBatch entre autres). Avec Wordpad, après la rédaction, Enregistrer sous --> fichier DOS.
(garde toujours la version ANSI en backup.)

n°1221158
golum666
Posté le 12-10-2005 à 14:00:02  profilanswer
 

MERCI !!!


---------------
pourquoi remettre à demain ce que l'on peut faire ... après demain !!!
n°1221201
golum666
Posté le 12-10-2005 à 14:42:21  profilanswer
 

je suis maudis ou alors la commande
set /p VAR=<c:\toto
ne marche pas sous win NT ???
apparement le commutateur /P n'existait pas sous NT. si tel est le cas, y a t il un moyen de contourner ce probleme (sous NT donc)??
 
euh... merci ?! (oui je sais je me repete! lol)


---------------
pourquoi remettre à demain ce que l'on peut faire ... après demain !!!
n°1221384
wackevat
Posté le 12-10-2005 à 17:25:59  profilanswer
 

Ah ok, je ne connais pas NT désolée.
 
Tu peux faire donc une boucle for pour récupérer la ligne, à moins que quelqu'un qui s'y connaisse mieux puisse te renseigner ;)

mood
Publicité
Posté le 12-10-2005 à 17:25:59  profilanswer
 

n°1221520
theshockwa​ve
I work at a firm named Koslow
Posté le 12-10-2005 à 19:11:38  profilanswer
 

Je viens de tenter, et, sous Win2000, ca passe très bien, le set /P

n°1221780
golum666
Posté le 13-10-2005 à 09:26:41  profilanswer
 

bon après quelques heures de reflections  :pt1cable:  :pt1cable:  j'ai trouvé la solution "ultime" à mon probleme
je donne ma commande si ca peut aider qqn un jour (ça m étonnerait mais bon ...  :??: )
 
for /F "tokens=2 delims= " %%i in ('"nslookup NOM_PC | find "Address" | more /E +1"') do set VAR=%%i
 
voilà ca marche sous NT/2000/XP et ca fait ce que je voulais sans meme devoir créer un fichier temporaire.
 
encore merci pour ton aide MONSIEUR (ca s'impose!) nglechau :jap:  
 
@+


---------------
pourquoi remettre à demain ce que l'on peut faire ... après demain !!!
n°1221781
golum666
Posté le 13-10-2005 à 09:28:05  profilanswer
 

theshockwave a écrit :

Je viens de tenter, et, sous Win2000, ca passe très bien, le set /P


 
oui sous 2000 et XP ca marchait... pas sous NT ! vive l'homogénéité des parc infos !!!


---------------
pourquoi remettre à demain ce que l'on peut faire ... après demain !!!
n°1221910
golum666
Posté le 13-10-2005 à 11:27:25  profilanswer
 

bon ... le DOS c'est sympa mais je galere sur autre chose maintenant ! lol
 
pourquoi quand je fais :
@for /F %%i in (liste.txt) do @echo %%i
ca marche ?!
alors que si je remplace echo par ping:
@for /F %%i in (liste.txt) do @ping %%i
ca ne marche plus !!! ma fenetre dos se ferme et si j'essaie de rediriger la sortie dans un fichier j'ai une erreur qui dit que la memoire tampon est pleine....
j'ai essayé avec nslookup ca marche!
 
une idée ?!


---------------
pourquoi remettre à demain ce que l'on peut faire ... après demain !!!
n°1222197
wackevat
Posté le 13-10-2005 à 15:28:50  profilanswer
 

golum666 a écrit :

for /F "tokens=2 delims= " %%i in ('"nslookup NOM_PC | find "Address" | more /E +1"') do set VAR=%%i


Merci :jap:


Pourquoi ? :??:

golum666 a écrit :

si j'essaie de rediriger la sortie dans un fichier j'ai une erreur qui dit que la memoire tampon est pleine....


Ton fichier contient combien d'entrées ? Tu as essayé de jouer avec les params -n et -w ?
 

n°1222215
golum666
Posté le 13-10-2005 à 15:37:58  profilanswer
 

ca s'impose parce que tu m'as bien aidé!
 
sinon pour la suite de mon probleme ce rendre là : lol
 
http://forum.hardware.fr/hardwaref [...] 3543-1.htm
 
@+


---------------
pourquoi remettre à demain ce que l'on peut faire ... après demain !!!
n°1222224
wackevat
Posté le 13-10-2005 à 15:42:33  profilanswer
 

Euh, dans deux posts tu mentionnes deux erreurs différentes.

n°1222229
golum666
Posté le 13-10-2005 à 15:45:03  profilanswer
 

sur l'autre post c'est là ou j'en suis actuellement ;)


---------------
pourquoi remettre à demain ce que l'on peut faire ... après demain !!!
n°1222236
wackevat
Posté le 13-10-2005 à 15:49:16  profilanswer
 

Oki ;) Je viens de t'y répondre.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  DOS - mettre resultat d'une commande dans variable

 

Sujets relatifs
mettre un fichier sur serveur[RESOLU] ereur non-static variable.........
ActionScript + invite de commande windows [résolu]Commandes DOS / Retour du FIND / non trouvé
Migration sous Mysql... résultat de la requete videExtraire le résultat d'un commande dos vers un fichier
Assembler le résultat de deux requetes sur une seule lignevariable
Ouvrir une page php a dans 1 nouvelle page avec START (DOS) 
Plus de sujets relatifs à : DOS - mettre resultat d'une commande dans variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR