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
GELÖST

Batch mit ping, die sich automatisch selbst beendet

Frage Entwicklung Batch & Shell

Mitglied: traller

traller (Level 1) - Jetzt verbinden

29.07.2014, aktualisiert 05.08.2014, 2215 Aufrufe, 12 Kommentare, 1 Danke

Hallo,
ich möchte eine Batch schreiben, die einen "ping IP -t" ausführt und sobald ein Wert in Millisekunden angezeigt wird, sich automatisch selbst beendet. Vorher kommen dann natürlich die Fehlermeldung "Zeitüberschreitung" und "Kein Host". Wie würde das gehen? Müsste ich da eine if-else Schnittstelle entwickeln?

Danke!!!
Mitglied: killtec
29.07.2014 um 14:33 Uhr
Hi,
wie wäre es anstelle eines -t ein -n 1 zu nehmen und dann den errorlevel abfragen?

Gruß
Bitte warten ..
Mitglied: traller
29.07.2014, aktualisiert um 14:46 Uhr
Zitat von killtec:
wie wäre es anstelle eines -t ein -n 1 zu nehmen und dann den errorlevel abfragen?


wohl nicht möglich. Es soll ein Computer per WOL gestartet werden und wenn er per Ping erreichbar ist, soll das Fenster einfach zu gehen, damit man weißt, das er den Bootvorgang beendet hat.
Bitte warten ..
Mitglied: killtec
29.07.2014 um 14:59 Uhr
Hast du denn schon was mit dem Script per WOL?
weil ein -t heißt ja nur, dass er das so lange macht. Du kannst das ganze was ich geschrieben habe ja in einer Schleife laufen lassen.

Sprich starten, Prüfen, Wenn Erfolgreich -> Beenden, wenn nicht, -> Zurück zum start. (geht recht schnell mit einer if und einem Sprungpunkt.

Gruß
Bitte warten ..
Mitglied: Sheogorath
30.07.2014 um 08:45 Uhr
Moin,

geht recht schnell:
01.
:Loop 
02.
ping -n 1 %host% 
03.
if %errorlevel% eq 0 Exit 
04.
goto :loop
Darüber schreibst du deinen WOL-Aufruf und schon passt es.

Gruß
Chris
Bitte warten ..
Mitglied: traller
02.08.2014 um 13:40 Uhr
Zitat von Sheogorath:

Moin,

geht recht schnell:
01.
:Loop 
02.
> ping -n 1 %host% 
03.
> if %errorlevel% eq 0 Exit 
04.
> goto :loop 
05.
> 
Darüber schreibst du deinen WOL-Aufruf und schon passt es.

Gruß
Chris
Deine Lösung scheint der richtige Weg zu sein. Aber welches Errorlevel ist denn das richtige ? wie frage ich das ab?
Bitte warten ..
Mitglied: Sheogorath
04.08.2014 um 01:48 Uhr
Hallöchen,

Genau das ist der Weg. Du willst, dass bei einem erfolgreichen Ping die Batch endet. Genau das macht sie. Erfolgreicher Ping ist Errorlevel 0 alles andere Errorlevel 1.

Gruß
Chris
Bitte warten ..
Mitglied: traller
04.08.2014, aktualisiert um 14:54 Uhr
Hallöle,
ich habe das mal so wie oben eingefügt und den host durch die IP ersetzt. Es muss aber das "eq" mit "==" ersetzt werden, sonst kommt Ausführen folgende Fehlermeldung:
01.
"eq" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
nun sieht es also wie folgt aus.
01.
:Loop 
02.
ping -n 1 192.168.6.5 
03.
if %errorlevel% == 0 exit 
04.
goto :loop
trotzdem stimmt was mit den Errorlevels nicht. der Schließt nämlich viel zu früh, nämich dann, wenn "Zielhost nicht erreichbar." angezeigt wird. Das kommt der Ping-Abfrage zwischendurch natürlich auch vor, nur schließt er dann zu früh ...
Bitte warten ..
Mitglied: Sheogorath
LÖSUNG 05.08.2014, aktualisiert um 16:01 Uhr
Moin,

stimmt, da war ja noch was ;)

eine verbesserte variante, die nun wirklich das richtige Errorlevel zur wirft:

01.
:Loop 
02.
ping -n 1 192.168.1.1 | find "TTL" 
03.
if %errorlevel% == 0 exit 
04.
goto :loop
Das sollte aber nun wirklich klappen. Hier wird nämlich die TTL (Time To Life) abgefragt, die nur bei wirklich lebendigen Paketen zurück kommt. wenn nicht, wird es nicht gefunden und läuft auf Fehler.

Gruß
Chris
Bitte warten ..
Mitglied: traller
05.08.2014 um 16:01 Uhr
Zitat von Sheogorath:

Moin,

stimmt, da war ja noch was ;)

eine verbesserte variante, die nun wirklich das richtige Errorlevel zur wirft:

01.
> :Loop 
02.
> ping -n 1 192.168.1.1 | find "TTL" 
03.
> if %errorlevel% == 0 exit 
04.
> goto :loop 
05.
> 
Das sollte aber nun wirklich klappen. Hier wird nämlich die TTL (Time To Life) abgefragt, die nur bei wirklich lebendigen
Paketen zurück kommt. wenn nicht, wird es nicht gefunden und läuft auf Fehler.

Gruß
Chris
danke, klappt nun wunderbar !!!
Bitte warten ..
Mitglied: traller
20.09.2014 um 21:45 Uhr
Hallo,
das Script funktioniert so weit sehr gut. Ich wollte nun den umgekehrten Weg machen, also es soll nun bei "Zielhost nicht erreichbar" und "Zeitüberschreitung der Anforderung" geschloßen werden. Soweit so gut, sollte das über
Zitat von traller:
nun sieht es also wie folgt aus.
01.
> :Loop 
02.
> ping -n 1 192.168.6.5 
03.
> if %errorlevel% == 0 exit 
04.
> goto :loop 
05.
> 
trotzdem stimmt was mit den Errorlevels nicht. der Schließt nämlich viel zu früh, nämich dann, wenn
"Zielhost nicht erreichbar." angezeigt wird.
also funktionieren. Problem ist aber nun: ich muss davor aber folgenden Befehl ausführen:
01.
plink.exe -pw Passwort Nutzer@IP sudo pm-suspend
Problem ist aber, dass wenn ich diesen Befehl in einer Batch ausführe, er nicht zu einem weiteren geht, da wohl nichts zurück geliefert wird etc. Sprich, es muss der Befehl ausgeführt werden und ohne wenn und aber in die Ping-Prüfung gegangen werden. Wie bekommt man das hin?
Bitte warten ..
Mitglied: Sheogorath
LÖSUNG 21.09.2014, aktualisiert um 19:45 Uhr
Moin,

das ist auch kein Problem, das mittel deiner Wahl ist "start"

01.
start c:\pfad\zur\plink.exe -pw Passwort nutzer@ip sudo pm-suspend
wobei man bei sowas dann lieber von Linux aus einen Ping an das gerät sendet, welches online ist.

Wenn das gerät ja nicht erreichbar ist, dann wirst du dort auch nichts abschlaten können, aber das ist ja deine Sache ;)

Gruß
Chris
Bitte warten ..
Mitglied: traller
21.09.2014 um 19:47 Uhr
Zitat von Sheogorath:

Moin,

das ist auch kein Problem, das mittel deiner Wahl ist "start"

01.
start c:\pfad\zur\plink.exe -pw Passwort nutzer@ip sudo pm-suspend
wobei man bei sowas dann lieber von Linux aus einen Ping an das gerät sendet, welches online ist.

Wenn das gerät ja nicht erreichbar ist, dann wirst du dort auch nichts abschlaten können, aber das ist ja deine Sache
;)

Gruß
Chris

brachte mich auf alle Fälle weiter. Nun sieht das Script so aus und funktioniert
01.
start plink.exe -pw Passwort nutzer@ip sudo pm-suspend 
02.
timeout /t 3 
03.
taskkill /IM plink.exe 
04.
:Loop 
05.
ping -n 1 ip 
06.
if %errorlevel% == 1 exit 
07.
goto :loop
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
Batch: .rar-Pakete automatisch Ordner erstellen und verschieben (2)

Frage von BowserMD zum Thema Batch & Shell ...

Windows 10
gelöst PCs über eine Batch Datei nach 2 Tagen Laufzeit automatisch herunterfahren (12)

Frage von Karsten70154 zum Thema Windows 10 ...

Batch & Shell
gelöst Batch um mehrere IP-Adressen via Ping auf Erreichbarkeit zu prüfen (5)

Frage von Galindiesel zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...