Batch: Ein Wort suchen und darauf hin einen Teil innerhalb des Strings als Variable setzen
Hallo Zusammen,
ich bin im Moment daran ein Batch Script zu schreiben, welches nach Eingabe eines Benutzernamen unser Logilfe nach der IP durchsucht und diese in eine Variable setzt.
Teil 1 steht:
Nach Eingabe des Benutzers werden folgende Informationen aus unserem Logfile (Logonscript) gelesen:
8:04:32; Benutzername Rechnername; IP; MAC; \\logonserver
8:04:32; Benutzername; Rechnername; IP; MAC; Inventory x64 start...
8:04:32; Benutzername Rechnername; IP; MAC; Inventory x64 beendet.
Ich möchte nun anhand des eingegebenen Benutzernamens die dazugehörige IP in dem String in eine Variable setzen.
8:04:32; Benutzername Rechnername; IP; MAC; \\logonserver
Ist das möglich? Wenn ja hat jemand ein Beispiel/Idee für mich?
Besten Dank
LG
Michael
ich bin im Moment daran ein Batch Script zu schreiben, welches nach Eingabe eines Benutzernamen unser Logilfe nach der IP durchsucht und diese in eine Variable setzt.
Teil 1 steht:
@echo off
set _Datum1=%date:~6,4%_%date:~3,2%
set _Datum2=%date:~6,4%%date:~3,2%%date:~0,2%
echo User:
set /p wort=
find /i "%wort%" \\nas\test$\Logfiles\%_Datum1%\%_Datum2%_logon.txt
if errorlevel 1 echo %wort% not found..
if errorlevel 0 echo %wort%
@pause
Nach Eingabe des Benutzers werden folgende Informationen aus unserem Logfile (Logonscript) gelesen:
8:04:32; Benutzername Rechnername; IP; MAC; \\logonserver
8:04:32; Benutzername; Rechnername; IP; MAC; Inventory x64 start...
8:04:32; Benutzername Rechnername; IP; MAC; Inventory x64 beendet.
Ich möchte nun anhand des eingegebenen Benutzernamens die dazugehörige IP in dem String in eine Variable setzen.
8:04:32; Benutzername Rechnername; IP; MAC; \\logonserver
Ist das möglich? Wenn ja hat jemand ein Beispiel/Idee für mich?
Besten Dank
LG
Michael
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 307069
Url: https://administrator.de/contentid/307069
Ausgedruckt am: 23.11.2024 um 12:11 Uhr
7 Kommentare
Neuester Kommentar
Hi.
Gruß skybird
edit Kommentare ergänzt und einen Fehler korrigiert
@echo off
set _Datum1=%date:~6,4%_%date:~3,2%
set _Datum2=%date:~6,4%%date:~3,2%%date:~0,2%
:: Variable hält später die IP
set IP=
set /p wort=User eingeben:
:: Zeile suchen und Spalte 4 (IP) extrahieren und in Variabler speichern
for /f "tokens=4 delims=;" %%a in ('findstr /ic:"%wort%" "\\nas\test$\Logfiles\%_Datum1%\%_Datum2%_logon.txt" 2^>nul') do set "IP=%%a"
:: Je nachdem ob IP gefunden wurde oder nicht reagieren
if defined IP (
echo IP ist %IP%
) else (
echo Kein Eintrag gefunden
)
edit Kommentare ergänzt und einen Fehler korrigiert
Hatte noch einen Fehler nachträglich oben korrigiert ...
Rechnername und Benutzername sind aber schon per Semikolon voneinander getrennt ?? Denn ein zwei deiner Zeilen haben dort kein Semikolon!
Rechnername und Benutzername sind aber schon per Semikolon voneinander getrennt ?? Denn ein zwei deiner Zeilen haben dort kein Semikolon!
8:04:32; Benutzername Rechnername; IP; MAC; \\logonserver
8:04:32; Benutzername; Rechnername; IP; MAC; Inventory x64 start...
8:04:32; Benutzername Rechnername; IP; MAC; Inventory x64 beendet.
8:04:32; Benutzername; Rechnername; IP; MAC; Inventory x64 start...
8:04:32; Benutzername Rechnername; IP; MAC; Inventory x64 beendet.
Keine Ursache
Gruß skybird
Gruß skybird
Zitat von @flyingmichael:
Jetzt habe ich noch ein kleines Problem, vor der IP also nach dem 4; sind noch 2 Leerzeichen wie bekomme ich die aus der Varibale?
So kannst du Leerzeichen aus der Variablen eliminieren:Jetzt habe ich noch ein kleines Problem, vor der IP also nach dem 4; sind noch 2 Leerzeichen wie bekomme ich die aus der Varibale?
set IP=%IP: =%
echo %IP%