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-Key: 51454

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

Printed on: April 19, 2024 at 21:04 o'clock

Member: miniversum
miniversum Feb 12, 2007 at 15:03:17 (UTC)
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
Member: Biber
Biber Feb 12, 2007 at 15:06:47 (UTC)
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
Member: drobskind
drobskind Feb 13, 2007 at 07:04:21 (UTC)
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
Mitglied: 44575
44575 Mar 02, 2007 at 17:00:38 (UTC)
Goto Top
@drobskind:

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

Daniel
Member: Biber
Biber Mar 02, 2007 at 17:11:49 (UTC)
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
Mitglied: 44575
44575 Mar 02, 2007 at 18:52:44 (UTC)
Goto Top
Hallo Biber,

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

Daniel