kollisionskurs
Goto Top

MAC-Adresse einer bestimmten Netzwerkkarte via Batch auslesen

Hallo,

ich beiße mir gerade an einer Batch-Datei die Zähne aus - ich möchte die MAC-Adresse einer bestimmten Netzwerkkarte via Batch auslesen. Die letzten 6 Zeichen der MAC-Adresse möchte ich dann mit dem Computernamen verknüpfen.

Sind die letzten Zeichen der MAC Adresse zum Beispiel:

AC:F5:0B

sollte der daraus resultierende Computername eben

newname_ACF50B ergeben.

Ich versuchte das zuvor über ipconfig /all zu lösen - bekomme aber Probleme wenn es mehr wie eine Karte im System gibt. Über den Befehl

Set NICName="Intel(R) PRO/100 VE Network Connection"
WMIC NIC WHERE Name=%NICName% GET MACAddress /VALUE

kann ich gezielt den entsprechenden Adapter selektieren. Allerdings bekomme ich keine Ausgabe bzw. funktioniert das ganze noch nicht. Das Ergebnis wir korrekt in einer Behelfsdatei namens MAC.txt gespeichert. Allerdings kann ich über "findstr" den Inhalt nicht abrufen bzw. dann in das gewünschte Ausgabeformat zerlegen (Doppelpunkte entfernen und nur die letzten 6 Zeichen übernehmen) - keine Ahnung wo der Fehler steckt ...

@echo off & setlocal enableDelayedExpansion
Set "CName=newname_"  
Set NICName="Intel(R) PRO/100 VE Network Connection"  
echo %NICName%

WMIC NIC WHERE Name=%NICName% GET MACAddress /VALUE > MAC.txt
for /F "Tokens=4,5,6 Delims=:" %%i in ('findstr /c:"*MACAddress" MAC.txt') do Set newCompName=%CName%%%i%%j%%k  
echo %newCompName%
pause

Hoffe Ihr könnt Schützenhilfe leisten

Danke & Grüße

Content-Key: 121727

Url: https://administrator.de/contentid/121727

Printed on: April 19, 2024 at 13:04 o'clock

Member: bastla
bastla Jul 31, 2009 at 08:16:38 (UTC)
Goto Top
Hallo Kollisionskurs!

Vielleicht so:
@echo off & setlocal
Set "CName=newname_"  
Set "NICName=Intel(R) PRO/100 VE Network Connection"  

WMIC NIC WHERE Name="%NICName%" GET MACAddress /VALUE|findstr "MACAddress">MAC.txt  
for /F "Tokens=4-6 Delims=:" %%i in (MAC.txt) do Set newCompName=%CName%%%i%%j%%k  
echo %newCompName%
Grüße
bastla
Member: Kollisionskurs
Kollisionskurs Jul 31, 2009 at 08:26:47 (UTC)
Goto Top
In der Firma erteile ich immer für diverse erfolgreiche Taten eine "virtuelle Heldenmütze"

Heute stülpe ich diese über Deinen Kopf face-wink

Das war wohl nur ein kleiner beschissener Formatierungsfehler....jetzt funktioniert es

Vielen Dank! & Grüße

Kollisionskurs
Member: Destry
Destry Jul 31, 2009 at 08:37:30 (UTC)
Goto Top
Hi,

wenn Du genau wissen willst was Dein Problem war, dann erstelle die MAC.txt mit Deinem alten wmic-Befehl und gebe in der Kommandozeile den Befehl "edit MAC.txt" ein. Dann siehst Du was schiefgelaufen ist. Notepad ist nicht immer zuverlässig.

Gruss,
Destry
Member: bastla
bastla Jul 31, 2009, updated at Jul 09, 2013 at 19:24:08 (UTC)
Goto Top
@Destry
Du könntest das auch in der Kurzfassung so formulieren: Die direkte Ausgabe von WMIC erzeugt Unicode, die mit "findstr" gefilterte Version enthält ASCII ...

Wenn schon als Unicode gespeichert, kann eine implizite Konvertierung immer noch mit einem "type" erfolgen - daher würde auch
type mac.txt|findstr "MACAddress"
das gewünschte Ergebnis bringen (zumindest, wenn im "findstr" kein "*" verwendet wird face-wink).

Grüße
bastla
Member: Destry
Destry Jul 31, 2009 at 14:25:42 (UTC)
Goto Top
Hallo Bastla,

danke für den Hinweis, aber ich schreibe es lieber so das es jeder verstehen und nachvollziehen kann (auch ich). face-wink

Gruss,
Destry
Member: bastla
bastla Jul 31, 2009 at 14:32:34 (UTC)
Goto Top
@Destry

War ja nur zur Ehrenrettung der "notepad.exe" ... face-wink

Grüße
bastla