Per Batch Text auslesen und Verbindung testen?
Hallo Leute!
Ich brauch Hilfe mit deiner Batch-Datei, die ein paar Befehle hintereinander ausführen soll. Den Ablauf habe ich zwar im Kopf, doch ich bin der Syntax nicht so mächtig.
Also das Batch soll folgendes tun:
1. Aus einer vorher erstellen 'iplist.txt' eine IP auslesen
2. Die gerade ausgelesene IP dann als neue setzen:
'netsh interface ip set address name="Local Area Connection" static 10.0.0.10 255.255.255.0 10.0.0.1'
3. Testen ob die neue IP erfolgreich war (z.B. mit 'ping www.google.de')
4. Wenn die Verbindung erfolgreich war -> exit - Und wenn die Verbindung nicht erfolgreich war wieder zu ->Punkt 1 und die nächste IP auf der Liste nehmen
Wäre echt super super nett, wenn mir jemand helfen könnte. Batch-Programierung ist echt nicht meine Welt. Vor allem beim auslesen der IPs aus der Textdatei und beim testen der Verbidung bin ich echt planlos...
Ich brauch Hilfe mit deiner Batch-Datei, die ein paar Befehle hintereinander ausführen soll. Den Ablauf habe ich zwar im Kopf, doch ich bin der Syntax nicht so mächtig.
Also das Batch soll folgendes tun:
1. Aus einer vorher erstellen 'iplist.txt' eine IP auslesen
2. Die gerade ausgelesene IP dann als neue setzen:
'netsh interface ip set address name="Local Area Connection" static 10.0.0.10 255.255.255.0 10.0.0.1'
3. Testen ob die neue IP erfolgreich war (z.B. mit 'ping www.google.de')
4. Wenn die Verbindung erfolgreich war -> exit - Und wenn die Verbindung nicht erfolgreich war wieder zu ->Punkt 1 und die nächste IP auf der Liste nehmen
Wäre echt super super nett, wenn mir jemand helfen könnte. Batch-Programierung ist echt nicht meine Welt. Vor allem beim auslesen der IPs aus der Textdatei und beim testen der Verbidung bin ich echt planlos...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 83206
Url: https://administrator.de/contentid/83206
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
12 Kommentare
Neuester Kommentar
@echo off
FOR /f %%f IN (ips.txt) DO (
'netsh interface ip set address name="Local Area Connection" static %%f 255.255.255.0 10.0.0.1'
ping www.google.de
if <erreichbar> goto :EOF
)
Nur die letzte Zeile (Steht nur symbolisch da), da fällt mir nicht viel ein, denn man könnte nun nach Errorleveln gucken,
jedoch sind die total unzuverlässig und je nach OS anders. Da müsste nun jemand einschreiten,
der ne andere Idee hat.
FOR /f %%f IN (ips.txt) DO (
'netsh interface ip set address name="Local Area Connection" static %%f 255.255.255.0 10.0.0.1'
ping www.google.de
if <erreichbar> goto :EOF
)
Nur die letzte Zeile (Steht nur symbolisch da), da fällt mir nicht viel ein, denn man könnte nun nach Errorleveln gucken,
jedoch sind die total unzuverlässig und je nach OS anders. Da müsste nun jemand einschreiten,
der ne andere Idee hat.
@echo off
FOR /f %%f IN (ips.txt) DO (
'netsh interface ip set address
name="Local Area Connection" static
%%f 255.255.255.0 10.0.0.1'
ping www.google.de
if <erreichbar> goto :EOF
)
FOR /f %%f IN (ips.txt) DO (
'netsh interface ip set address
name="Local Area Connection" static
%%f 255.255.255.0 10.0.0.1'
ping www.google.de
if <erreichbar> goto :EOF
)
... da fällt mir nicht viel ein, denn man könnte nun nach Errorleveln gucken, jedoch sind die total unzuverlässig ...
Warum unzuverlässig? Die hängen halt vom jeweiligen Programm ab... und je nach OS anders.
Klar auf Linux oder Mac geht das so nicht. Das ist bei Batchdateien aber immer so.Aber ums mal hinzubasteln wie das mit dem
if <erreichbar> goto :EOF
)
gehen kann:)
ping /n 1 www.google.de>NUL 2>NUL && goto:eof
Warum unzuverlässig? Die hängen
halt vom jeweiligen Programm ab
> ... und je nach OS anders.
Klar auf Linux oder Mac geht das so nicht.
Das ist bei Batchdateien aber immer so.
Nein, ich meine dass bei XP Home und XP Prof. unterschiedlich Errorlevelhalt vom jeweiligen Programm ab
> ... und je nach OS anders.
Klar auf Linux oder Mac geht das so nicht.
Das ist bei Batchdateien aber immer so.
zustande kommen. Hier im Forum wurde schonmal heiß drüber diskutiert.
Aber ums mal hinzubasteln wie das mit dem
> if <erreichbar> goto :EOF
> )
gehen kann:
> ping /n 1 www.google.de>NUL 2>NUL
&& goto:eof
> if <erreichbar> goto :EOF
> )
gehen kann:
> ping /n 1 www.google.de>NUL 2>NUL
&& goto:eof
Könntest Du mir bitte den Teil mit " 2>NUL" erklären?
Würde es gerne nachvollziehen könnne.
@threadstarter
Hm, beschreib doch mal was genau Du vor hast
Nein, ich meine dass bei XP Home und XP Prof. unterschiedlich Errorlevel zustande kommen. Hier im Forum wurde schonmal heiß drüber diskutiert.
Könntest Du mir bitte den Teil mit
" 2>NUL" erklären?
Würde es gerne nachvollziehen
könnne.
Das ist eigentlich ganz einfach. Programme habe zwei mögliche "Kanäle" über die sie Ausgaben machen können. In C++ gibts dafür z.B. die Befehle cout und cerr. EIGENTLICH wird immer die Standardausgabe über Kanal 1 ausgegeben und Fehlermeldungen über Kanal 2 (hier im Forum gabs auch mal das Problem das das ncith funktioniert weils bei java anders Programiert ist)." 2>NUL" erklären?
Würde es gerne nachvollziehen
könnne.
Wenn ich hinter einen Befehl nun >NUL schreibe wird die Standardausgabe nach NUL, also ins Nirvana umgeleitet. >NUL leitet also Kanal1 um. Man könnte auch schreiben 1>NUL. Die Wirkung wäre die gleiche. Mit 2>NUL wird Kanal2, also die Fehlermeldungen umgeleitet. Auf diese Art kann man also verschiedene Dinge kombinieren.
befehl 1>NUL & REM Unterdrückung der Standardausgabe, Fehlermeldungen werden angezeigt.
befehl 2>NUL & REM Standardausgabe wird angezeigt, Fehlermeldungen werden unterdrückt.
befehl >ausgabe.txt 2>fehler.txt & REM Umleitung der Standardausgabe in Ausgabe.txt, Fehlermeldungen werden in fehler.txt geschrieben.
Ich hoffe das war einigermaßen verständlich erklärt.befehl 2>NUL & REM Standardausgabe wird angezeigt, Fehlermeldungen werden unterdrückt.
befehl >ausgabe.txt 2>fehler.txt & REM Umleitung der Standardausgabe in Ausgabe.txt, Fehlermeldungen werden in fehler.txt geschrieben.
miniversum
@overreaction
Würde es dann nicht reichen, dass die IPs die nicht funktionieren gelöscht werden,
oder die IPs die "funktionabel" sind in eine neue Datei gespeichert werden?
@miniversum
Super erklärt, besten Dank!
Würde es dann nicht reichen, dass die IPs die nicht funktionieren gelöscht werden,
oder die IPs die "funktionabel" sind in eine neue Datei gespeichert werden?
@miniversum
Super erklärt, besten Dank!