91630
Jun 28, 2010, updated at Jun 30, 2010 (UTC)
5304
6
0
Script zum wechseln der IP-Adresse mehrerer IP-Adressbereiche
Im Unternehmen sollen mehrere IP-Adressbereiche umgestellt werden. Nun bastel ich an einem Script was das den alten Adressbereich ausliest und je nach Ergebnis eine neue IP Adresse setzt.
Hallo zusammen,
ich möchte in meinem Unternehmen Computer von einem IP-Adressbereich in einen anderen umziehen. Dabei ist es wichtig das ein gewisses Schema eingehalten wird. Damit meine ich:
Alte IP: 192.168.1.x soll in den Bereich 192.168.100.x überführt werden.
Alte IP: 192.168.2.x soll in den Bereich 192.168.200.x überführt werden.
Alte IP: 192.168.3.x soll in den Bereich 192.168.300.x überführt werden, usw.
Dafür habe ich mir ein Script überlegt, welches so aber noch nicht ganz rund funktioniert:
Das Problem ist das jede Zeile vom Script abgearbeitet wird, d.h. in diesem Fall wird die IP-Adresse dreimal hintereinander geändert.
Was mache ich da genau falsch?
Vielen Dank für Eure Hilfe
Stefan
ich möchte in meinem Unternehmen Computer von einem IP-Adressbereich in einen anderen umziehen. Dabei ist es wichtig das ein gewisses Schema eingehalten wird. Damit meine ich:
Alte IP: 192.168.1.x soll in den Bereich 192.168.100.x überführt werden.
Alte IP: 192.168.2.x soll in den Bereich 192.168.200.x überführt werden.
Alte IP: 192.168.3.x soll in den Bereich 192.168.300.x überführt werden, usw.
Dafür habe ich mir ein Script überlegt, welches so aber noch nicht ganz rund funktioniert:
for /F "tokens=13,*" %%i in ('ipconfig^|find "IP-Ad"') do set IP=%%j
echo %IP%>c:\ip.txt
echo %IP%
for /f "tokens=1 delims=." %%a in (C:\ip.txt) do set ip1=%%a
echo %ip1%
for /f "tokens=2 delims=." %%a in (C:\ip.txt) do set ip2=%%a
echo %ip2%
for /f "tokens=3 delims=." %%a in (C:\ip.txt) do set ip3=%%a
echo %ip3%
for /f "tokens=4 delims=." %%a in (C:\ip.txt) do set ip4=%%a
echo %ip4%
if %ip3%==1 ( goto gw100 )
if %ip3%==2 ( goto gw200 )
if %ip3%==3 ( goto gw300 )
:gw100
netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.100.%ip4% 255.255.255.0 192.168.100.1 1
:gw200
netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.200.%ip4% 255.255.255.0 192.168.200.1 1
:gw300
netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.300.%ip4% 255.255.255.0 192.168.300.1 1
Was mache ich da genau falsch?
Vielen Dank für Eure Hilfe
Stefan
Please also mark the comments that contributed to the solution of the article
Content-Key: 145830
Url: https://administrator.de/contentid/145830
Printed on: April 23, 2024 at 13:04 o'clock
6 Comments
Latest comment
moin,
wobei das nur deine Version um den Bock beseitigt ist. Ich würds ganz anders machen.....
Gruß
Zitat von @91630:
for /F "tokens=13,*" %%i in ('ipconfig^|find "IP-Ad"') do set IP=%%j
echo %IP%>c:\ip.txt
echo %IP%
for /f "tokens=1 delims=." %%a in (C:\ip.txt) do set ip1=%%a
echo %ip1%
for /f "tokens=2 delims=." %%a in (C:\ip.txt) do set ip2=%%a
echo %ip2%
for /f "tokens=3 delims=." %%a in (C:\ip.txt) do set ip3=%%a
echo %ip3%
for /f "tokens=4 delims=." %%a in (C:\ip.txt) do set ip4=%%a
echo %ip4%
if %ip3%==1 ( goto gw100 )
if %ip3%==2 ( goto gw200 )
if %ip3%==3 ( goto gw300 )
echo dieser Rechner ist in einem IP Bereich, fuer den dieses Script nicht erdacht wurde
echo ich breche ab....
pause
goto end
:gw100
netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.100.%ip4% 255.255.255.0 192.168.100.1 1
echo hier fehlt entweder
echo exit
echo oder
echo goto end
:gw200
netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.200.%ip4% 255.255.255.0 192.168.200.1 1
:gw300
netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.300.%ip4% 255.255.255.0 192.168.300.1 1
:end
ping %computername% -n1 -a >c:\ip.txt
wobei das nur deine Version um den Bock beseitigt ist. Ich würds ganz anders machen.....
Gruß
Zitat von @91630:
Mhm danke.
Ich arbeite zum ersten Mal mit If-Bedinungen. Also kann ich für mich festhalten: Jeder Einstiegspunkt braucht eine End-Anweisung?
ja, aber andersherum, nicht jede if anweisung braucht einen einstiegspunkt.Mhm danke.
Ich arbeite zum ersten Mal mit If-Bedinungen. Also kann ich für mich festhalten: Jeder Einstiegspunkt braucht eine End-Anweisung?
Und auch das ist nur ein Weg, von denen es viele gibt......
if %ip3%==1 netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.100.%ip4% 255.255.255.0 192.168.100.1 1
if %ip3%==2 netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.200.%ip4% 255.255.255.0 192.168.200.1 1
if %ip3%==3 netsh interface ip set address "LAN-Verbindung" static %ip1%.%ip2%.300.%ip4% 255.255.255.0 192.168.300.1 1
Wie würdest Du den Wechsel vornehmen?
Gruß