Batchabfrage
Hallo zusammen,
ich hänge seit 2 Tagen an einer Batchdatei (*.cmd) die für ein anderes Projekt nutzten will.
Zum Aufbau der Batch
1. Es wird die MAC Adresse vom Client aufgelesen
2. Im Anschluss soll geprüft werden ob es die MAC Adresse in einer Textdatei gibt und der Wert an der 5 Stelle wird ausgelesen und dann an den entsprechenden Punkt springen.
Soweit klappt dieses auch, aber wenn er die MAC nicht findet bricht es einfach ab und ich weiß nicht mehr wo ich ansetzen soll.
Alles was ich bis dato über google oder der suche gefunden habe, brachten mich nicht weiter oder verwirten mich nur noch mehr.
Die Textdatei ist wir folgt aufgebaut und wurde mit dem Editor erstellt.
00:01:02:03:04:05;Wert1;Wert2;Wert4;Wert5
00:01:02:03:04:06;Wert1;Wert2;Wert4;Wert5
00:01:02:03:04:07;Wert1;Wert2;Wert4;Wert5
00:01:02:03:04:08;Wert1;Wert2;Wert4;Wert5
Die Batch (CM) ist wie folgt aufgebaut.
for /f "Tokens=1 skip=3" %%a in ('getmac') do set MAC=%%a
set MAC=%MAC:-=:%
for /f "Tokens=5 delims=;" %%b in ('findstr %MAC% "<Pfad zu Datei\Dateiname.txt>"') do set "NEU=%%b"
If %NEU%==1 (
GOTO ALT
) else (
GOTO REC
)
:ALT
Echo Alle OK
GOTO Ende
:REC
Echo Neuinstallation %MAC%
Er soll, wenn er die MAC nicht findet einfach zum Punkt :REC springen, aber irgendwie bekomme ich das nicht hin.
Wenn jemand eine entsprechende Idee oder Anregung hat, wäre ich dankbar.
Die Batch soll dann ein ein bootmenü mit aufgenommen werden und wenn die MAC nicht vorhanden ist oder einen bestimmten Wert an der 5 Stelle hat automatisch den PXE boot auslösen ansonsten von der Platte booten.
Das ist aber ein anderes Projekt, was ich dann in Angriff nehme, wenn dieses steht.
Danke für eure Hilfe
ich hänge seit 2 Tagen an einer Batchdatei (*.cmd) die für ein anderes Projekt nutzten will.
Zum Aufbau der Batch
1. Es wird die MAC Adresse vom Client aufgelesen
2. Im Anschluss soll geprüft werden ob es die MAC Adresse in einer Textdatei gibt und der Wert an der 5 Stelle wird ausgelesen und dann an den entsprechenden Punkt springen.
Soweit klappt dieses auch, aber wenn er die MAC nicht findet bricht es einfach ab und ich weiß nicht mehr wo ich ansetzen soll.
Alles was ich bis dato über google oder der suche gefunden habe, brachten mich nicht weiter oder verwirten mich nur noch mehr.
Die Textdatei ist wir folgt aufgebaut und wurde mit dem Editor erstellt.
00:01:02:03:04:05;Wert1;Wert2;Wert4;Wert5
00:01:02:03:04:06;Wert1;Wert2;Wert4;Wert5
00:01:02:03:04:07;Wert1;Wert2;Wert4;Wert5
00:01:02:03:04:08;Wert1;Wert2;Wert4;Wert5
Die Batch (CM) ist wie folgt aufgebaut.
for /f "Tokens=1 skip=3" %%a in ('getmac') do set MAC=%%a
set MAC=%MAC:-=:%
for /f "Tokens=5 delims=;" %%b in ('findstr %MAC% "<Pfad zu Datei\Dateiname.txt>"') do set "NEU=%%b"
If %NEU%==1 (
GOTO ALT
) else (
GOTO REC
)
:ALT
Echo Alle OK
GOTO Ende
:REC
Echo Neuinstallation %MAC%
Er soll, wenn er die MAC nicht findet einfach zum Punkt :REC springen, aber irgendwie bekomme ich das nicht hin.
Wenn jemand eine entsprechende Idee oder Anregung hat, wäre ich dankbar.
Die Batch soll dann ein ein bootmenü mit aufgenommen werden und wenn die MAC nicht vorhanden ist oder einen bestimmten Wert an der 5 Stelle hat automatisch den PXE boot auslösen ansonsten von der Platte booten.
Das ist aber ein anderes Projekt, was ich dann in Angriff nehme, wenn dieses steht.
Danke für eure Hilfe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 579866
Url: https://administrator.de/forum/batchabfrage-579866.html
Ausgedruckt am: 19.04.2025 um 06:04 Uhr
2 Kommentare
Neuester Kommentar

@echo off
set "csv=<Pfad zu Datei\Dateiname.txt>"
for /f "tokens=1" %%a in ('getmac /NH') do set "MAC=%%a"
findstr /iblc:"%MAC%" "%csv%" >nul 2>&1 || goto :REC
for /f "tokens=5 delims=;" %%a in ('findstr /iblc:"%MAC%" "%csv%"') do (if "%%a" NEQ "1" goto :REC)
echo Alle OK
goto :eof
:REC
echo Neuinstallation %MAC%