DOS - mettre resultat d'une commande dans variable - Shell/Batch - Programmation
Marsh Posté le 11-10-2005 à 14:29:38
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.
Marsh Posté le 11-10-2005 à 14:50:17
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
Marsh Posté le 11-10-2005 à 15:35:22
merci
Marsh Posté le 12-10-2005 à 12:25:16
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 é...
Marsh Posté le 12-10-2005 à 13:34:58
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.)
Marsh Posté le 12-10-2005 à 14:00:02
MERCI !!!
Marsh Posté le 12-10-2005 à 14:42:21
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)
Marsh Posté le 12-10-2005 à 17:25:59
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
Marsh Posté le 12-10-2005 à 19:11:38
ReplyMarsh Posté le 13-10-2005 à 09:26:41
bon après quelques heures de reflections 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
@+
Marsh Posté le 13-10-2005 à 09:28:05
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 !!!
Marsh Posté le 13-10-2005 à 11:27:25
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 ?!
Marsh Posté le 13-10-2005 à 15:28:50
golum666 a écrit : for /F "tokens=2 delims= " %%i in ('"nslookup NOM_PC | find "Address" | more /E +1"') do set VAR=%%i |
Merci
golum666 a écrit : ca s'impose! |
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 ?
Marsh Posté le 13-10-2005 à 15:37:58
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
@+
Marsh Posté le 13-10-2005 à 15:42:33
Euh, dans deux posts tu mentionnes deux erreurs différentes.
Marsh Posté le 13-10-2005 à 15:45:03
sur l'autre post c'est là ou j'en suis actuellement
Marsh Posté le 11-10-2005 à 10:59:19
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 !!!