WinFuture-Forum.de: Wenn Ping Erfolgreich Dann ... - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Windows XP
Seite 1 von 1

Wenn Ping Erfolgreich Dann ...


#1 Mitglied ist offline   Spezi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 478
  • Beigetreten: 24. Februar 04
  • Reputation: 0
  • Wohnort:Wesel

geschrieben 03. Januar 2006 - 22:08

Hy,

hab hier ne kleine Batch:
@echo off
cls

rem ssh befehl für router zum reconnecting ...

echo Reconnecting

:no
(for /f %%i in ('Ping -n 1 1und1.de ^|Find "TTL="') do goto yes)||goto no 
echo .
rem fortschritt anzeigen ...

:yes
exit


Mein Problem ist das er diese Schleife nur einmal durchläuft und beendet. Leider hab ich nicht so die Ahnung von Batches. Hab mir das so zusammenkopiert und bisschen angepasst.

Also meiner Meinung soll dieses Script solange durchlaufen bis der Router wieder eine neue Verbindung aufgebaut hat bzw. einen Ping beantwortet hat und ich somit weis ich dann das Internet wieder vorhanden ist.

Dieser Beitrag wurde von Spezi bearbeitet: 03. Januar 2006 - 22:21

0

Anzeige



#2 Mitglied ist offline   guardian@geißenweide 

  • Gruppe: aktive Mitglieder
  • Beiträge: 166
  • Beigetreten: 20. Dezember 05
  • Reputation: 9
  • Geschlecht:Männlich
  • Wohnort:SYS$HOME:[000000]

geschrieben 04. Januar 2006 - 10:54

Folgendes sollte ausreichen:

 
@echo off
cls

rem ssh befehl für router zum reconnecting ...

echo Reconnecting

:no
echo .

Ping -n 1 1und1.de>NUL
IF ERRORLEVEL 1 goto no


rem fortschritt anzeigen ...

echo Connected!

exit

"Es gibt keine Zauberei – nur Illusion. Die Dinge verändern sich nur, wenn wir sie verändern. Aber man muss es geschickt tun – im Verborgenen. Dann wirkt es wie Zauberei."
0

#3 Mitglied ist offline   Spezi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 478
  • Beigetreten: 24. Februar 04
  • Reputation: 0
  • Wohnort:Wesel

geschrieben 04. Januar 2006 - 15:53

Funktioniert so leider nicht. Bei deiner Batch springt er zwar einmal auf no, aber dann beendet sich es.

Naja hab gerade mal bei meinem Script das no und yes in der Zeile mit der for Schleife getauscht und siehe da es funktioniert.

Trotzdem danke, guardian@geißenweide.
0

#4 Mitglied ist offline   ScHwaRzEr AFgHaNe 

  • Gruppe: aktive Mitglieder
  • Beiträge: 83
  • Beigetreten: 31. Dezember 05
  • Reputation: 1
  • Geschlecht:Männlich
  • Wohnort:Hessen

geschrieben 04. Januar 2006 - 16:50

Hi!!!

Ich weiss jetzt nich ob du eine seite anpingen willst um zu gucken wie dein ping ist oder aus einem anderen grund falls es für ping ist dann gib einfach in cmd

ping www.1und1.de ein

Ich hoffe ich konnte dir helfen wenn nich dann tuts mir leid. Hab mein bestes versucht^^ ;(
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild
Eingefügtes Bild
0

#5 Mitglied ist offline   DarkMole 

  • Gruppe: aktive Mitglieder
  • Beiträge: 425
  • Beigetreten: 28. August 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Freudenstadt
  • Interessen:PC

geschrieben 04. Januar 2006 - 17:27

Nur der Vollständigkeit halber: Bei guardians Code müsste man das ERRORLEVEL in der schleife vor dem ping wieder 0 setzen. Ginge glaub ich so:
:no
echo .

ERRORLEVEL=0
Ping -n 1 1und1.de>NUL
IF ERRORLEVEL 1 goto no


edit: vielleicht muss das = bei errorlevel auch weg, bin gerade nicht sicher

Dieser Beitrag wurde von DarkMole bearbeitet: 04. Januar 2006 - 17:29

Live for nothing or die for something

Silverstone Sugo-SG05 - ZOTAC GeForce 9300-ITX WiFi - Core 2 Quad Q8400 - Radeon HD 4850 Silent
OCZ Vista Performance Platinum 4Gb Kit - Samsung EcoGreen F2 1TB - Win 7 Pro
0

#6 Mitglied ist offline   guardian@geißenweide 

  • Gruppe: aktive Mitglieder
  • Beiträge: 166
  • Beigetreten: 20. Dezember 05
  • Reputation: 9
  • Geschlecht:Männlich
  • Wohnort:SYS$HOME:[000000]

geschrieben 04. Januar 2006 - 17:52

Also...

Der von mir gepostete Code tut genau das was gefordert war. Nämlich solange 1und1.de nicht erreicht werden kann, wieder auf no: zu springen. Sobald 1und1.de erfolgreich angepingt wird, läuft das Skript bis zum Ende durch.

Ach ja, die Systemvariable ERRORLEVEL muss nicht irgendwie zurückgesetzt werden. Sie wird beim Ausführen eines Befehls innerhalb des Skripts jedesmal neu "überschrieben". D.h. solange 1und1.de nicht angepingt werden kann, wird ERRORLEVEL = 1 gesetzt, da ja der Befehl ping.exe nicht erfolgreich durchgeführt wurde. Sobald 1und1.de angepingt werden kann, ist ERRORLEVEL = 0 und es wird nicht mehr auf no: gesprungen.

Das Verhalten kann man auch ganz einfach unter CMD Testen:

DNS-Name erreichbar:
Ping -n 1 1und1.de>NUL

echo %errorlevel%
0 <-- Ergebnis ERRORLEVEL = 0

DNS-Name nicht erreichbar oder unbekannt:

Ping -n 1 1und1xsd.de>NUL

echo %errorlevel%
1 <-- Ergebnis ERRORLEVEL = 1
"Es gibt keine Zauberei – nur Illusion. Die Dinge verändern sich nur, wenn wir sie verändern. Aber man muss es geschickt tun – im Verborgenen. Dann wirkt es wie Zauberei."
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0