Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Per Batch Text auslesen und Verbindung testen?

Frage Entwicklung Batch & Shell

Mitglied: overreaction

overreaction (Level 1) - Jetzt verbinden

15.03.2008, aktualisiert 18.03.2008, 6633 Aufrufe, 12 Kommentare

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...
Mitglied: -Ohforf
15.03.2008 um 21:42 Uhr
spontan würde mir dazu einfallen

ipconfig /all >> C:\ip.txt

damit leitest du die ausgabe von "ipconfig /all"
in eine datei weiter, von der aus du dann deine idee
weiter umsetzen kannst.
Bitte warten ..
Mitglied: funkmasta2k
15.03.2008 um 22:00 Uhr
@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.
Bitte warten ..
Mitglied: miniversum
16.03.2008 um 10:24 Uhr
@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
)

... 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
Bitte warten ..
Mitglied: overreaction
16.03.2008 um 13:02 Uhr
Hallo Leute!


Das klappt schonmal sehr gut, vielen Dank!

Allerdings habe ich noch was kleines: Wie kann ich in der iplist.txt ein Flag oder so setzen, damit bei einem erneuten Durchlauf bereits getestete IPs nicht mehr verwendet werden? Also so dass die IP-Liste erst wieder von beginn abgearbeitet wird, wenn alle IPs in der Liste durch sind.

Wäre nett, wenn ihr mir da noch Tipps geben könntet.
Bitte warten ..
Mitglied: funkmasta2k
16.03.2008 um 14:07 Uhr
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 Errorlevel
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

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
Bitte warten ..
Mitglied: overreaction
16.03.2008 um 14:35 Uhr
@Threadstarter
Hm, beschreib doch mal was genau Du vor hast

Nunja, ich habe Kabelinternet und somit eine faktisch gesehen feste IP-Adresse. Manchmal ist es aber vonnöten diese zu wecheln. Habe schon alle anderen Methoden durchprobiert (Modem neustarten, MAC-Adresse ändern, ...) doch bei meinem ISP funktioniert das alles nicht.

Die einzige Möglichkeit, eine andere IP zu bekommen ist das durchprobieren von IP-Adressen aus meiner Range. Allerdings funktioniert etwa nur jede 5te Adresse, darum versuche ich gerade das alles soweit wie möglich zu automatisieren.

Dazu habe ich halt ne iplist.txt mit IPs aus meiner Range. Diese sollen abgearbeitet werden inkl. Verbindungstest.
In einem nächsten Schritt will ich die IP-Liste verkleinern, indem IPs, bei denen der Test fehlgeschlagen ist, aus der Liste gelöscht werden.
Am ende habe ich dann eine schlanke Liste an funktionierenden IPs, die ich bei bedarf beziehen kann.

Gut nicht? ^^
Bitte warten ..
Mitglied: miniversum
16.03.2008 um 16:48 Uhr
Nein, ich meine dass bei XP Home und XP Prof. unterschiedlich Errorlevel zustande kommen. Hier im Forum wurde schonmal heiß drüber diskutiert.
Die Diskusion hab ich glaube ich ncith mitbekommen. Um welchen Befehl ging es da den konkret. Eigentlich wird ja meistens bei erfolg (also keinem Fehler) eine 0 zurückgegeben und sonst ein Wert >0. Die Verwendete Mimik mit den && bzw. || macht ja nur ne Kontrolle ob 0 oder ungleich 0. Von daher sollte es denke ich meistens gehen.


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).
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.

miniversum
Bitte warten ..
Mitglied: funkmasta2k
16.03.2008 um 21:45 Uhr
@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!
Bitte warten ..
Mitglied: overreaction
16.03.2008 um 22:41 Uhr
@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!
Naja, prinzipiell ist egal, wie das gehandelt wird. Mein aktuelles Problem ist halt, dass die Liste immer wieder von Beginn abgearbeitet wird. Ideal wäre, wenn ich die letzte 'gute' IP irgendwie markieren könnte, und beim nächsten Ausführen der Datei wieder dort wieder fortzusetzen.
Hat jemand eine Idee, wie ich das realisieren könnte?
Bitte warten ..
Mitglied: funkmasta2k
16.03.2008 um 22:44 Uhr
Was ich aber bei Dir nicht ganz verstehe, können die IPs die bis dato komplett gelöscht werden,
oder möchtest Du sie nochmal "irgendwann" wieder von vorne abchecken?
Bitte warten ..
Mitglied: overreaction
17.03.2008 um 08:36 Uhr
Was ich aber bei Dir nicht ganz verstehe,
können die IPs die bis dato komplett
gelöscht werden,
oder möchtest Du sie nochmal
"irgendwann" wieder von vorne
abchecken?
Ja bisher werden diese ja nach einmaligem gebrauch gelöscht. Aber ich will diese wieder von Anfang abarbeiten, sobald das Ende der Liste erreich wurde.
Bitte warten ..
Mitglied: funkmasta2k
18.03.2008 um 14:45 Uhr
Du, wenn Du den Ping mit "/n 1" ausführst, geht das recht zügig. Oder willst Du 10.000 IP-Adressen ausprobieren? Also mir würde spontan nichts dazu einfallen.
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(2)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
gelöst Mit batch zeilen auslesen (2)

Frage von keksegriller zum Thema Batch & Shell ...

Linux Netzwerk
gelöst Verschlüsselung einer FTP-Verbindung testen (3)

Frage von Nasenbaer1968 zum Thema Linux Netzwerk ...

Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Batch & Shell
Per Batch aktuell angemeldete User auslesen (1)

Frage von Peter32 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (10)

Frage von 1410640014 zum Thema Backup ...