Get-Name.cmd und Get-MAC.cmd - Daten aus einer TXT-Datei auslesen und anzeigen
Hallo Adminkollegen,
hallo Forengemeinde,
ich bin neu hier und brauche Eure Hilfe, da mir weder das Board noch Google weiter helfen konnten. Ich habe mich jetzt den halben Tag mit meiner Problematik beschäftigt und verschiedene Codezeilen und Schnipsel versucht.
Die Vorlage für meine Idee habe ich hier entnommen: Batch - Automatisiert den Computername ändern und anschließend in die Domäne aufnehmen
Und zwar habe ich eine Datei (Liste.txt) die in jeder Zeile jeweils eine MAC-Adresse der dazugehörige Hostname und das installierte Betriebssystem jeweils getrennt mit einem Tab beinhalten.
Beispiel der Datei:
Mit Hilfe der Datei Get-Name.cmd soll (im DOS-Modus) die MAC-Adresse ausgelesen und mit Hilfe der Liste.txt der dazugehörige Hostname ermittelt werden. Die Ergebnisse der Zeile im TXT-File (MAC, Name, Betriebssystem) sollen in der mac.txt abgespeichert werden. Die bisherige unvollständige Datei sieht folgendermaßen aus:
Folgendes kriege ich nach Stunden „try and error“ nicht hin (dabei habe ich den nicht funktionierenden Teil weitgehendst wieder gelöscht):
- Der Rechnername beinhaltet immer ein Leerzeichen am Ende
- Die MAC-Adresse ein Leerzeichen am Anfang
- Das dazugehörige Betriebssystem bekomme ich gar nicht ausgelesen und habe auch keine Idee wie das zu realisieren wäre.
Woran ich bisher komplett gescheitert bin ist am „Projekt“ Get-MAC.cmd. Mit Hilfe dieser möchte ich mittels set /p pcname=PC-Name: den Namen eingeben und das Skript zeigt mir dann mit Hilfe der liste.txt das Betriebssystem und die dazugehörige MAC-Adresse. Etwaige Großbuchstaben der MAC (A-F) sollten dabei vor der Ausgabe, wenn möglich, in Kleinbuchstaben umgewandelt werden. Als Code-Schnippsel hierfür habe ich folgendes „ergoogelt“:
Wer von Euch kann mir bei meinen Batch-Problemen helfen. Ich bin für jeden erdenkliche Hilfe und Hinweis dankbar.
Gruß
rompihh
hallo Forengemeinde,
ich bin neu hier und brauche Eure Hilfe, da mir weder das Board noch Google weiter helfen konnten. Ich habe mich jetzt den halben Tag mit meiner Problematik beschäftigt und verschiedene Codezeilen und Schnipsel versucht.
Die Vorlage für meine Idee habe ich hier entnommen: Batch - Automatisiert den Computername ändern und anschließend in die Domäne aufnehmen
Und zwar habe ich eine Datei (Liste.txt) die in jeder Zeile jeweils eine MAC-Adresse der dazugehörige Hostname und das installierte Betriebssystem jeweils getrennt mit einem Tab beinhalten.
Beispiel der Datei:
11-22-33-44-55-66 PC01 WinXP
AA-BB-CC-DD-EE-FF PC02 WIN7
…
Mit Hilfe der Datei Get-Name.cmd soll (im DOS-Modus) die MAC-Adresse ausgelesen und mit Hilfe der Liste.txt der dazugehörige Hostname ermittelt werden. Die Ergebnisse der Zeile im TXT-File (MAC, Name, Betriebssystem) sollen in der mac.txt abgespeichert werden. Die bisherige unvollständige Datei sieht folgendermaßen aus:
set log=mac.txt
::Nameermitteln
if exist "%log%" del %log%
:: Es werden alle MAC-Adressen des PC's ermittelt
for /f "tokens=2 delims=:" %%a in ('ipconfig /all ^| find "Physi"') do echo %%a>> %log%
echo *******MAC ermitteln********
echo alle MAC-Adressen %mac%
for /f "tokens=2 delims=:" %%a in ('ipconfig /all ^| find "Physi"') do echo %%a
echo *******Rechnername ermitteln********
for /f "tokens=1 delims=" %%s in ('type "%log%"') do (for /f "tokens=2 delims= " %%b in ('type "liste.txt" ^|findstr "%%s"') do if not "%%b"=="" set name=%%b && set mac=%%s)
ECHO. >> "%log%"
echo Rechnername : %name%>> "%log%"
echo MAC-Adresse : %mac%>> "%log%"
echo Betriebssystem: %system%>> "%log%"
Folgendes kriege ich nach Stunden „try and error“ nicht hin (dabei habe ich den nicht funktionierenden Teil weitgehendst wieder gelöscht):
- Der Rechnername beinhaltet immer ein Leerzeichen am Ende
- Die MAC-Adresse ein Leerzeichen am Anfang
- Das dazugehörige Betriebssystem bekomme ich gar nicht ausgelesen und habe auch keine Idee wie das zu realisieren wäre.
Woran ich bisher komplett gescheitert bin ist am „Projekt“ Get-MAC.cmd. Mit Hilfe dieser möchte ich mittels set /p pcname=PC-Name: den Namen eingeben und das Skript zeigt mir dann mit Hilfe der liste.txt das Betriebssystem und die dazugehörige MAC-Adresse. Etwaige Großbuchstaben der MAC (A-F) sollten dabei vor der Ausgabe, wenn möglich, in Kleinbuchstaben umgewandelt werden. Als Code-Schnippsel hierfür habe ich folgendes „ergoogelt“:
set mac=%mac:A=a%
set mac=%mac:B=b%
set mac=%mac:C=c%
set mac=%mac:D=d%
set mac=%mac:E=e%
set mac=%mac:F=f%
for /f "tokens=1,2 delims=_-" %%i in ("%mac%")
Wer von Euch kann mir bei meinen Batch-Problemen helfen. Ich bin für jeden erdenkliche Hilfe und Hinweis dankbar.
Gruß
rompihh
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 215782
Url: https://administrator.de/forum/get-name-cmd-und-get-mac-cmd-daten-aus-einer-txt-datei-auslesen-und-anzeigen-215782.html
Ausgedruckt am: 22.04.2025 um 14:04 Uhr
3 Kommentare
Neuester Kommentar
Hallo,
die Windows Version kannst du so erhalten:
Das führende Leerzeichen verschwindet so:
Mit dem nachhängenden funktioniert das genau so, da der Computername keine Leerzeichen oder andere Delimiter enthält.
Die liste.txt auswerten:
lg.
die Windows Version kannst du so erhalten:
for /f "tokens=2*" %a in ('reg query "\\%PCName%\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion" /v ProductName^|find "REG_SZ"') do set "version=%b"
echo %version%
for /f "tokens=2delims=:" %a in ('ipconfig /all ^|find "Phys"') do @for %b in (%~a) do @echo %~b
Die liste.txt auswerten:
for /f "tokens=1,3" %a in ('find /i "%PCName%" liste.txt') do @echo %a %b