Bonjour,
Quelqu'un sait-il comment extraire l'adresse mac (entouré en rouge) lors d'un arp -a d'une adresse ip?
cf exemple.jpg
C'est très important pour la suite de mon script. Merci d'avance.
Bonjour,
Quelqu'un sait-il comment extraire l'adresse mac (entouré en rouge) lors d'un arp -a d'une adresse ip?
cf exemple.jpg
C'est très important pour la suite de mon script. Merci d'avance.
A toi de voir ce que tu veux faire avec après, il te suffit de remplacer le "echo" par ton traitement, la variable %%I contient la MAC Address en question.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 @echo off if "%1"=="" goto :eof for /f "usebackq tokens=2 skip=3" %%I in (`arp -a %1`) do echo %%I
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Merci beaucoup, ta solution marche parfaitement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 set ip=10.45.100.52 ping %ip% for /f "usebackq tokens=2 skip=3" %%I in (`arp -a %ip%`) do echo %%I>>AdresseMac.txt
J'ai aussi un autre problème, je voudrais récupérer des informations situées dans des lignes particulières d'un fichier texte.( les lignes 8 et 10 présentées ci-dessous)
8- NEO-4A19A2
9- <gMgr -l -r "/tmp/config/sys/sysinfo.ini" -k "Sysinfo/Hw" -i "serialNumber"
10- 7124A19A2
11- [root@NEO-4A19A2 /root]# exit
J'ai essayé ceci, mais cela ne marche pas.
Les caractères 8-, 9-, 10-, 11- ne sont pas des caractères de mon fichier, je les ai ajouté pour être plus clair.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for /f "eol= skip=7" %%A in (`Neoware.txt`) do set NomMachine=%%A for /f "eol= skip=9" %%B in (`Neoware.txt`) do set NumSerie=%%B echo %NomMachine%;%NumSerie%>>ResultNeoware.txt
Merci.
Normal, tu n'as pas mis "tokens", et dans ton cas "eol" n'est à priori pas utile.
Mets donc "tokens=1 skip=X" à la place (X=7 ou 9), et retente : ça devrait marcher.
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Non, j'avais déjà essayé et ça ne marche pas.
(J'ai rentré ceci) Le fichier Neoware.txt existe.
et je n'ai que le ; dans le fichier ResultNeoware.txt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for /f "tokens=1 skip=7" %%A in (`Neoware.txt`) do set NomMachine=%%A for /f "tokens=1 skip=9" %%B in (`Neoware.txt`) do set NumSerie=%%B echo %NomMachine%;%NumSerie%>>ResultNeoware.txt
Ceci marche :C'était encore plus évident que ça, j'avais pas vu les "``" autour du nom de fichier... Il ne faut les utiliser que lorsque tu veux analyser le résultat d'une commande, pas quand c'est un fichier déjà existant.
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 REM Récupération du nom de machine. for /f "tokens=1 skip=7" %%A in (Neoware.txt) do ( set NomMachine=%%A REM On casse la boucle, inutile de poursuivre et REM en plus, ça provoque des écrasements. goto :break1 ) :break1 REM Récupération du numéro de série. for /f "tokens=1 skip=9" %%B in (Neoware.txt) do ( set NumSerie=%%B REM On casse la boucle, inutile de poursuivre et REM en plus, ça provoque des écrasements. goto :break2 ) :break2 REM Fini, on a juste les informations que l'on voulait. echo %NomMachine%;%NumSerie%>>ResultNeoware.txt
Volontairement, j'ai omis le "@echo off" en tête de fichier, tu verras ainsi que le fichier s'arrête bel et bien d'être parcouru après avoir trouvé la bonne ligne. Si tu enlèves les "goto", tu verras qu'à chaque fois, "NomMachine" et "NumSerie" vaudront la valeur de la dernière entrée tous les deux...
Attention surtout à ne pas rajouter d'espaces inutiles dans les lignes contenant un "set", sinon l'espace en question sera ajouté à la variable.
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Merci pour ta réponse qui m'a permis de générer ce code. J'ai rajouté le & qui me permet de "casser la boucle" et de m'arrêter à l'enregistrement que je voulais, sinon il remontait la dernière ligne du fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for /f "tokens=1 skip=7" %%f IN (Neoware.txt) DO (set NomMachine=%%f & goto :BREAK1) :BREAK1 for /f "tokens=1 skip=9" %%g IN (Neoware.txt) DO (set NumSerie=%%g & goto :BREAK2) :BREAK2 echo %NomMachine%;%NumSerie%>>ResultNeoware.txt
Attention à ton code, là : ton "...=%%f & goto..." va ajouter un espace après l'élément, il faut écrire "...=%%f& goto...". C'est pour éviter ça que j'avais séparé sur plusieurs lignes : c'est plus lisible, et ça évite ce genre d'erreurs.
Sinon, ton fichier final contiendra "NEO-4A19A2 ;7124A19A2 " au lieu de "NEO-4A19A2;7124A19A2".
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Merci Mac LAK
Quelqu'un saurait-il récupérer les 8 premiers caractères de cet arp -a ?
ex : 00:5e:56:78:8p
-> 00:5e:56
En partant de ce code :Tu fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 set ip=10.45.100.52 ping %ip% for /f "usebackq tokens=2 skip=3" %%I in (`arp -a %ip%`) do echo %%I>>AdresseMac.txtCela devrait fonctionner.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for /f "tokens=1-3 delims=:" %%I in (AdresseMac.txt) do echo %%I:%%J:%%K>>AdresseMacReduite.txt
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Partager