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
Please also mark the comments that contributed to the solution of the article
Content-Key: 579866
Url: https://administrator.de/contentid/579866
Printed on: April 27, 2024 at 23:04 o'clock
2 Comments
Latest comment
@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%