Bonjour,
Ayant créer un premier script pour extraire le contenu de ma commande nslookup je cherche désormais à extraire l'ip avec une commande DOS
Me donnant :
Mais je veux juste avoir l'ip :/
Merci à vous !
Bonjour,
Ayant créer un premier script pour extraire le contenu de ma commande nslookup je cherche désormais à extraire l'ip avec une commande DOS
Me donnant :
Mais je veux juste avoir l'ip :/
Merci à vous !
Bonjour,
D'après ce que j'ai compris, tu récupères l'output de nslookup dans un txt, et tu veux récupérer seulement l'ip dans une variable et non la ligne complète ?
Une solution :
Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 For /F "Tokens=2 Delims=: " %%a In ('Type test.txt ^| Find /I "Address"') Do (Set "address=%%a") Echo %address%
C'est parfait ! Un grand merci, possible de m'expliquer la commande ? Histoire de comprendre un peu et pourquoi pas m'améliorer ?
Aucun souci
Dans l'ordre :
Le type te permet de lire le fichier, le pipe (|) renvoi le retour de la commande au find qui récupère la ligne contenant la chaine address (donc 'Type test.txt ^| Find /I "Address"' te retourne la ligne "Address : 1.2.3.4"
On fait un for sur ce résultat, en affectant deux délimiteurs (: et espace dans le delims), les délimiteurs sont des caractères servant à couper ta chaine en plusieurs tokens), et on lui dit de prendre le deuxième jeton seulement (tokens=2), qui correspond donc à l'ip (en gros ta chaine en tokens correspondrait à "token1 : token2").
Dans le Do() il ne te reste plus qu'à exploiter %%a qui se trouve être ton ip, ici je l'ai attribué à une variable pour pouvoir l'utiliser hors du for.
J’espère que c'est plus clair pour toi, sinon n'hésite pas.
Je t'invite à mettre le sujet en "résolu".
Bonne soirée !
Merci beaucoup !
Dernière question dans le cas ou je n'est pas de chaine fixe au début type "address" comment assigner un delims et donc séparer par des tokens ?
La par exemple je souhaite récupérer uniquement les adresses IP afin de faire une boucle dans un script et les analyser une à une.
Quelle est la commande qui permet d'afficher cela ?
Partager