Wenn Abfrage mit PS oder Batch
Hallo Liebe Community,
hat einer von euch eine Idee, wie man eine WENN Abfrage in einer PS oder Batch abfrage Scriptet ?
Hintergrund :
Wir haben eine VPN, die Ständig Gepingt wird. Nun soll das Script, wenn der Ziel Host nicht Erreichbar ist ist eine EXE Datei ausführen.
Lg Citytow
hat einer von euch eine Idee, wie man eine WENN Abfrage in einer PS oder Batch abfrage Scriptet ?
Hintergrund :
Wir haben eine VPN, die Ständig Gepingt wird. Nun soll das Script, wenn der Ziel Host nicht Erreichbar ist ist eine EXE Datei ausführen.
Lg Citytow
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 299377
Url: https://administrator.de/contentid/299377
Ausgedruckt am: 23.11.2024 um 22:11 Uhr
7 Kommentare
Neuester Kommentar
Sowas in der Art?
@echo off
ping -n 1 IP-Adresse
if errorlevel 1 goto FEHLER
if errorlevel 0 goto geht
:FEHLER
*.exe -Parameter
:geht
Moin zusammen.
Ping gibt keinen auswertbaren Errorlevel zurück!
Machst du mit Powershell oder Batch wie ich hier schon sehr oft beschrieben habe:
Netzwerkstatus
Batch
oder auch mit Powershell
Gruß jodel32
Zitat von @127944:
Sowas in der Art?
Achtung: Das funktioniert definitiv nicht!Sowas in der Art?
@echo off
> ping -n 1 IP-Adresse
> if errorlevel 1 goto FEHLER
> if errorlevel 0 goto geht
>
Ping gibt keinen auswertbaren Errorlevel zurück!
Machst du mit Powershell oder Batch wie ich hier schon sehr oft beschrieben habe:
Netzwerkstatus
Batch
wmic PATH Win32_PingStatus where Address='8.8.8.8' get StatusCode /format:list |find "StatusCode=0" >nul && echo Internet OK || echo Internet nicht OK
if (!(Test-Connection "8.8.8.8" -Count 1 -Quiet)){
write-host "Internet nicht verbunden!"
# hier Programm starten
} else {
write-host "Internet ist erreichbar"
}
Zitat von @114757:
Ping gibt keinen auswertbaren Errorlevel zurück!
Ping gibt keinen auswertbaren Errorlevel zurück!
Doch. Bei einem Fehler ist der 1 - anderfalls kleiner 0. Letzteres habe ich tatsächlich in meinem Codebeispiel unterschlagen. Würde in seinem Fall trotzdem funktionieren.
Zitat von @127944:
Doch. Bei einem Fehler ist der 1 - anderfalls kleiner 0. Letzteres habe ich tatsächlich in meinem Codebeispiel unterschlagen. Würde in seinem Fall trotzdem funktionieren.
Und nochmal NEIN, das Auswerten des Errorlevels geht bei Ping nicht !!!! Denn es liefert keinen zuverlässigen mit dem Verbindungszustand übereinstimmenden Errorlevel zurück. Glaub es mir, my friend , ich mach das nicht erst seit gestern. Kannst du übrigens auch in diversen Threads hier nachlesen!Zitat von @114757:
Ping gibt keinen auswertbaren Errorlevel zurück!
Ping gibt keinen auswertbaren Errorlevel zurück!
Doch. Bei einem Fehler ist der 1 - anderfalls kleiner 0. Letzteres habe ich tatsächlich in meinem Codebeispiel unterschlagen. Würde in seinem Fall trotzdem funktionieren.
Guckst du hier (Host nicht erreichbar aber Errorlevel trotzdem 0 !!):
C:\Windows\system32>ping 192.168.1.2
Ping wird ausgeführt für 192.168.1.2 mit 32 Bytes Daten:
Antwort von 192.168.1.10: Zielhost nicht erreichbar.
Antwort von 192.168.1.10: Zielhost nicht erreichbar.
Antwort von 192.168.1.10: Zielhost nicht erreichbar.
Antwort von 192.168.1.10: Zielhost nicht erreichbar.
Ping-Statistik für 192.168.1.2:
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
(0% Verlust),
C:\Windows\system32>echo %errorlevel%
0
Shit - habe soeben exakt den selben Test gemacht. du hast Recht - und ich wieder was - trotz >15 Jahren Erfahrung - dazu gelernt
Zitat von @127944:
Shit - habe soeben exakt den selben Test gemacht. du hast Recht - und ich wieder was - trotz >15 Jahren Erfahrung - dazu gelernt
Schön, wieder ein paar Leben gerettet Hoffe du hast keine produktiven Skripte laufen die auf dem Errorlevel vertrauen Shit - habe soeben exakt den selben Test gemacht. du hast Recht - und ich wieder was - trotz >15 Jahren Erfahrung - dazu gelernt