swimmer
Goto Top

IP Segment in bat - Datei

Hallo,

ich möchte in einer Batch-Datei gerne das 3te IP-Segment auslesen und weiterverarbeiten. Ist dies möglich, wenn ja wie?

Bsp:

IP Adresse ist 192.168.19.10 --> dann möchte ich, das die 19 in einer Variable gespeichert wird, die ich z.B. in einem ping-Befehl weiterverarbeiten kann --> ping 192.168.%IPRANGE%.1

Danke

Stefan

Content-Key: 89409

Url: https://administrator.de/contentid/89409

Printed on: April 18, 2024 at 02:04 o'clock

Member: bastla
bastla Jun 09, 2008 at 09:51:36 (UTC)
Goto Top
Hallo swimmer und willkommen im Forum!

Soferne Du die IP-Adresse bereits in einer Variablen (zB %IP%) hast, etwa so:
for /f "tokens=1-4 delims=." %%a in ("%IP%") do set IPRANGE=%%c  
Die Zerlegung in Einzelteile (= "tokens") erfolgt anhand des Trennzeichens (= "delimiter") "." und liefert die Ergebnisse in den Variablen %%a bis %%d - das 3. Segment ist daher in %%c enthalten.

Mehr dazu in der Onlinehilfe ("for /?" an der Kommandozeile eingeben) ...

Grüße
bastla
Member: swimmer
swimmer Jun 09, 2008 at 11:29:38 (UTC)
Goto Top
Hallo Bastla, habe folgendes in mein Script eingefügt.

Leider ohne den gewünschten Erfolg. Kann ich die Ausgabe des Befehls for /f "tokens=1-4 delims=." %%a in ("%IP%") do set IPRANGE=%%c auch "silent" machen?

Danke

--
for /f "tokens=1-4 delims=." %%a in ("%IP%") do set IPRANGE=%%c

ipconfig /all

Pause

ping 192.168.%c%.1

Pause
--
Member: bastla
bastla Jun 09, 2008 at 11:40:02 (UTC)
Goto Top
Hallo swimmer!

ping 192.168.%c%.1
kann nicht funktionieren, da auch %%c (%c% war vermutlich ein Tippfehler) nur innerhalb der "for"-Schleife zur Verfügung steht - deshalb ja auch die Variable %IPRANGE%:
 ping 192.168.%IPRANGE%.1
Kann ich die Ausgabe ... auch "silent" machen?
Ganz verstehe ich Deine Frage nicht, da diese Zeile keine sichtbare Ausgabe erzeugt. Da Du von einem bestehenden Batch geschrieben hast, gehe ich natürlich davon aus, dass die erste Zeile
@echo off & setlocal
lautet und somit die Befehlszeilen selbst vor der Ausführung nicht angezeigt werden.

Grüße
bastla

P.S.: Zum Posten von Code:
Member: swimmer
swimmer Jun 09, 2008 at 11:49:55 (UTC)
Goto Top
Hallo, noch eine Frage: woher bekomme ich die Variable %IP% gefüllt?

Danke

PS. Bin leider kein Batch-Programmierer ;)
Member: bastla
bastla Jun 09, 2008 at 11:57:52 (UTC)
Goto Top
Hallo swimmer!

woher bekomme ich die Variable %IP% gefüllt?
Eigentlich solltest Du wissen, welche IP-Adresse Du zerlegen willst ...

Falls es die aktuelle Adresse des lokalen Rechners sein sollte (und dieser nur über einen NW-Adapter mit nur einer Adresse verfügt), kannst Du das gleich kombinieren:
for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr "IP-Adr"') do for /f "tokens=1-4 delims=." %%a in ("%%i") do set IPRANGE=%%c  
Grüße
bastla
Member: swimmer
swimmer Jun 09, 2008 at 12:06:04 (UTC)
Goto Top
Hallo Bastla,

haut super hin.

Danke...