drobskind
Goto Top

teil-string einer ip rausfiltern per batch

hallo,

wir haben in der schule einige räume mit tauschlaufwerken und homelaufwerk.
die ips werden anhand der raumnummern vergeben

dh. Raum 003 -> ip: 192.168.3.x tausch: \\serv-003
Raum 136 -> ip: 192.168.136.x tausch: \\serv-136

nun habe ich schon eine batch geschrieben die mir den login auf das tauschlaufwerk enorm vereinfacht... ich hätte es aber gern noch einfacher.

wie man sieht sind die tauschserver mit der vollen raumnummer angegeben.
leider kann ich in einer ip aber nicht 192.168.003.x schreiben sonder die 3 wird allein hingeschrieben.

wie kann ich denn jetzt möglichst einfach einen Filter basteln, der mir ebend genau diesen dritten teil der ip herrausfiltert, und für den fall, das die zahl nur 1 bzw 2- stellig ist noch nullen davorschreibt?

die abfrage nach der ip habe ich in die batch schon eingebaut und sie wird in einer variablen gespeichert.

kurz:
ip auslesen :192.168.3.29
in variable: %ip%
string aus variable rausfiltern: 3
string mit nullen auffüllen: 003
in variable: %raumnr%

danke
drobskind

Content-ID: 51454

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

Ausgedruckt am: 22.11.2024 um 06:11 Uhr

miniversum
miniversum 12.02.2007 um 16:03:17 Uhr
Goto Top
FOR /F "tokens=3 delims=." %%a in ('echo %ip%') do set raumnr=%%a
if %raumnr% lss 10 set raumnr=0%raumnr%
if %raumnr% lss 100 set raumnr=0%raumnr%

miniversum
Biber
Biber 12.02.2007 um 16:06:47 Uhr
Goto Top
Moin drobskind,

im Batch am besten mit einer FOR/F-Anweisung.

....
REM Die IP steht in Variable %ip%...
for /f "tokens=3 delims=." %%i in ("%ip%") do Set "IP_Octet3=000%%i"  
REM ... erst das dritte Oktett mit ein paar "0" vorweg speichern.  
Set "IP_Octet3=%IP_Octet3:~-3%"  
REM ...und davon die letzten 3 Stellen behalten...
ECHO Drittes Oktett = Raumnummer: %IP_Octet3%
---

HTH Biber
drobskind
drobskind 13.02.2007 um 08:04:21 Uhr
Goto Top
Danke euch beiden...
habe jetzt einfach mal den ersten code genommen (von miniversum) war schön klein face-wink
und er funktioniert so wie ich es mir vorgestellt habe...

auch einen grossen dank an Biber...
hab deinen code zwar noch nicht probiert aber sieht gut aus...
werde ihn heute nachmittag auch einmal in meine batch integrieren.

mfg
drobskind
44575
44575 02.03.2007 um 18:00:38 Uhr
Goto Top
@drobskind:

Hi,
würde mich mal interessieren, mit welchem Batch genau Du die IP-Adresse herausbekommst.
Danke schon mal!

Daniel
Biber
Biber 02.03.2007 um 18:11:49 Uhr
Goto Top
Moin Daniel337,

for /f "delims=: tokens=2" %%i in ('ipconfig ^|find "IP-A"') do set myIP=%%i

...wäre eine der Möglichkeiten im Batch.
Test am CMD-Prompt
for /f "delims=: tokens=2" %i in ('ipconfig ^|find "IP-A"') do @echo %i

Gruss
Biber
44575
44575 02.03.2007 um 19:52:44 Uhr
Goto Top
Hallo Biber,

wow, das war ja eine schnelle Antwort.
Sieht gut aus, vielen Dank!

Daniel