Manuell eingegebene IPs auf Gültigkeit prüfen und in einer Umgebungsvariable als Liste ablegen ohne in eine externe Datei zu schreiben
Hallo Leute,
vielleicht kann mir jemand weiterhelfen, da ich doch schon einige Stunden an dem Problem knoble.
Das bisherige Ergebnis liefert nur die IPs die keine Buchstaben oder Sonderzeichen und zumindest drei Punkte enthalten.
Dies habe ich aus Beiträgen im Forum zusammengebastelt.
Nun hätte ich gern als Ergebnis:
EIP=127.0.0.1 10.100.24.37
in der Variablen, nur wie bekomme ich das hin?
Die bisherige Ausgabe sieht soweit gut aus, aber ich möchte nicht so etwas wie
set EIP=127.0.0.1>> random.bat
set EIP=127.0.0.1>> random.bat
und dann
call random.bat.
Hat jemand ne Idee. Wäre super,
Danke und Gruß,
Toldi
vielleicht kann mir jemand weiterhelfen, da ich doch schon einige Stunden an dem Problem knoble.
@echo off & cls & setlocal enableextensions enabledelayedexpansion
:: RegEx pattern für eine IP
set patternIP="^[0-9]*\.[0-9]*\.[0-9]*"
:: set EIP=127.0.0.1 127.a.0.1 10.100.24.37 10.a00.24.37
set /P EIP=
FOR %%i IN (%EIP%) DO (
echo %%i|findstr /R %patternIP%
)
goto :eof
Das bisherige Ergebnis liefert nur die IPs die keine Buchstaben oder Sonderzeichen und zumindest drei Punkte enthalten.
Dies habe ich aus Beiträgen im Forum zusammengebastelt.
Nun hätte ich gern als Ergebnis:
EIP=127.0.0.1 10.100.24.37
in der Variablen, nur wie bekomme ich das hin?
Die bisherige Ausgabe sieht soweit gut aus, aber ich möchte nicht so etwas wie
set EIP=127.0.0.1>> random.bat
set EIP=127.0.0.1>> random.bat
und dann
call random.bat.
Hat jemand ne Idee. Wäre super,
Danke und Gruß,
Toldi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 107647
Url: https://administrator.de/contentid/107647
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo toldik und willkommen im Forum!
Soferne ich das richtig verstehe und Du aus einem Eingabe-String mit mehreren IP-Adressen alle formal gültigen Adressen (durch Leerzeichen getrennt) in einen Ergebnis-String setzen möchtest, dann etwa so:
Das überzählige Leerzeichen am Ende von %EIP% kannst Du bei Bedarf so loswerden:
Grüße
bastla
Soferne ich das richtig verstehe und Du aus einem Eingabe-String mit mehreren IP-Adressen alle formal gültigen Adressen (durch Leerzeichen getrennt) in einen Ergebnis-String setzen möchtest, dann etwa so:
@echo off & cls & setlocal enableextensions enabledelayedexpansion
:: RegEx pattern für eine IP
set patternIP="^[0-9]*\.[0-9]*\.[0-9]*"
set /P Ein=
set EIP=
FOR %%i IN (%Ein%) DO echo %%i|findstr /R %patternIP% >nul && set "EIP=!EIP!%%i "
if defined EIP echo %EIP%
set "EIP=%EIP:~,-1%
bastla