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, 6651 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Variable per Batch auslesen und in Registry schreiben (1)

Frage von Zendara zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: CPU-Auslastung eines Prozesses auslesen und als Variable definieren (3)

Frage von tralveller zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
gelöst Fenstertitel von anderen Tasks per batch auslesen (3)

Frage von NetMare zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows 10

Plattformdienst für unbekannte Geräte (7023)

Tipp von KMUlife zum Thema Windows 10 ...

Administrator.de Feedback

Umgangsformen auf der Seite

(9)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(11)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
Windows Server Komplettspiegelung (15)

Frage von pdiddo zum Thema Windows Server ...

Batch & Shell
gelöst Dir tc Befehl unter Windows 10 macht Probleme (14)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
Windows Server 2016 RDS Remoteapp Anzeigefehler (11)

Frage von qlnGenius zum Thema Windows Server ...