Jump to content

IP Adresse in batch Variable übernehmen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Jan, vielen Dank für den Tipp. Das klappt im Schritt eins sehr gut.

Allerdings krieg ich die IP wieder nicht sauber in die Variable.

Irgendwie schnall ich das mit dem entfernen einzelner Zeichen nicht.

Ist aber auch schon ein sehr langer Tag heute. :(

 

 

Das ist meine Ausgabe

{"10.220.194.79"}  

Alles bis auf die IP müsste noch abgeschnitten werden..

Link zu diesem Kommentar

Moin,

 

wmic erfordert lokale Adminrechte. Dürfte für den Zweck ungeeignet sein.

 

Ganz ehrlich, mit einer FOR-Schleife und den Fragmenten, die ich hier schon genannt habe, bekommt man das hin. Der Trick ist: Mit FIND filterst du aus der Ausgabe von ipconfig die Zeile, die du brauchst. Mit FOR isolierst du dann den Teil nach dem Doppelpunkt. Versuch es einfach mal.

 

Gruß, Nils

Link zu diesem Kommentar

Eine Möglichkeit ist

for /f "tokens=1 Delims=," %%i in ('wmic path win32_networkadapterconfiguration get ipaddress^|findstr /C:".37"') do set var=%%i
set var=%var:~1%
set var=%var:"=%
set var=%var: =%
echo %var%

pause

Mit set var=%var:~1% beginnt das Set, die Auswertung nach dem ersten Zeichen, dem führenden <.

Mit set var=%var:"=% werden die Anführungszeichen duch Nichts ersetzt, es entsteht keine Leerstelle.

Sollte sich am Ende der Zeichenkette oder sonstwo ein Space befinden, wird dieses entfernt mit set var=%var: =%

 

Ich bin selbst nicht begeistert von dem Konstrukt, ich hätte gerne angewendet %~I, zum Entfernen umschliessender Anführungszeichen und hätte auch gerne < als Delimeter verwendet. Ich krieg es nicht hin.

 

Ich habs jetzt mal so geschnitten, einmal vorne und dann hinten

set var=%var:~2,-2%
bearbeitet von lefg
Link zu diesem Kommentar

wmic erfordert lokale Adminrechte. Dürfte für den Zweck ungeeignet sein.

 

Korrektur: wmic läuft mit Standardbenutzerrechten seit Vista problemlos.

for /f "delims=:" %i in ('ipconfig ^| find /i "ipv4" ^| find /i "10.220"' ) do set IP=%j & set ip=%ip: =%

Geht in deutsch und englisch und liefert in %IP% die gefundene IP-Adresse ohne Leerzeichen zurück. Für Batchverwendung dann bitte %%i und %%j statt %i und %j.

 

wmic wäre zwar auch elegant, wird aber kompliziert, wenn man erst noch die IPv6-Adresse herausoperieren muß, die ja vorne oder hinten stehen kann. Oder auch ganz fehlt :cool:

Link zu diesem Kommentar

Moin,

 

schau an, dann sollte ich meine Vorbehalte gegenüber WMIC vielleicht mal überdenken. ;)

 

Den FIND-Filter für IPv4 kannst du dir aber eigentlich sparen, wenn du sowieso nach einem IPv4-Adressfragment filterst, oder? Aber ich denke, das ginge dann schon in Richtung Haarspalterei ... jedenfalls eine sehr hübsche Zeile, die da entstanden ist. :D

 

Gruß, Nils

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...