Recupéré adresse IP et MAC de PC via un Batch

Fermé
Florian - 1 juin 2012 à 14:48
 P@m@zigh - 14 oct. 2014 à 17:32
Bonjour à tous,

J'ai fais un script batch pour obtenir des adresse IP et MAC à partir d'un fichier nommé host_list.txt.
Le script stock les informations sous forme HOSTNAME;IP;MAC dans un fichier addr_host_list.csv.

Le problème c'est que les PC pour lesquels je n'arrive pas à obtenir d'adresse IP ou/et MAC j'aimerais quand même les mettre dans le fichier .csv sous le format HOSTNAME;IP; et HOSTNAME;;

Hors avec mon script, ces postes ne sont pas traitées et donc n'apparaissent pas dans le fichier .csv.

J'ai tenté avec des ERRORLEVEL = 1 mais ça ne fonctionne pas.

Voici mon script .bat (batch MS-DOS):

@echo off
echo Cette etape peut prendre quelque minutes.
echo Script en cours... 
echo HOSTNAME;IP;MAC > addr_host_list.csv

rem Trouver les adresses IP via les HOSTNAMES par un PING
for /f "usebackq tokens=1 delims=\r" %%i in ("host_list.txt") do (
	IF ERRORLEVEL = 0 (
		for /f "tokens=2 delims=[]" %%j in ('ping -n 1 %%i') do (
			for /f "tokens=2 delims=<=>" %%k in ('nbtstat -a %%j ^| findstr "MAC"') do (
				echo %%i;%%j;%%k >> addr_host_list.csv	
				echo !
			)
		)
	) ELSE IF ERRORLEVEL = 1 (
		echo %%i;NOK;NOK >> no_addr_host_list.csv
	)
)
echo Le fichier "addr_host_list.csv" a ete genere dans le meme dossier que le script "addr_host_list.bat".
pause


Merci pour votre aide, Cordialement,

Florian


A voir également:

4 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
1 juin 2012 à 15:28
hello
le IF ERRORLEVEL = 0 teste l'errorlevel de quelle commande ?
0
falavoine Messages postés 2 Date d'inscription vendredi 1 juin 2012 Statut Membre Dernière intervention 1 juin 2012
1 juin 2012 à 16:18
Il test le FOR précédent, mais j'ai deja essayé de jouer avec les ERRORLEVEL mais ça ne fonctionne pas :\

Sinon je l'ai mal utilisé mais je ne pense pas.
0
falavoine Messages postés 2 Date d'inscription vendredi 1 juin 2012 Statut Membre Dernière intervention 1 juin 2012
1 juin 2012 à 16:19
PS : Florian = moi ;)
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
1 juin 2012 à 16:36
n'est-ce pas l'errorlevel du ping qu 'il faudrait tester ? machine existe et répond errorlevel=0, machine n'existe pas ou ne répond pas, errorlevel <> 0
0
Il faut metre le if et le else sur la meme ligne !
0