121416
Apr 09, 2015, updated at 14:14:42 (UTC)
1920
1
0
Bitte batch-Script auf Fehler prüfen
Hallo,
ich habe ein kleines Script geschrieben, welches zuerst prüfen soll ob der vpn-Server erreichbar ist. Mit diesem soll er sich dann verbinden. Dies soll er bis zu 10x versuchen und bei Bedarf wieder. Der Algorithmus müsste stimmen, aber ich arbeite nie mit cmd/bat. Ich habe auch keinen Debugger.
Kann mal bitte jemand drüber schauen. Vielleicht ist es ja nur eine Kleinigkeit.
ich habe ein kleines Script geschrieben, welches zuerst prüfen soll ob der vpn-Server erreichbar ist. Mit diesem soll er sich dann verbinden. Dies soll er bis zu 10x versuchen und bei Bedarf wieder. Der Algorithmus müsste stimmen, aber ich arbeite nie mit cmd/bat. Ich habe auch keinen Debugger.
Kann mal bitte jemand drüber schauen. Vielleicht ist es ja nur eine Kleinigkeit.
@echo off
set count = 0
:pingINT
ping -n 1 vpn.public.de | find /i "Antwort" > nul
if errorlevel 1 (
if %count% LSS 10 (
set count = %count% + 1
goto pingINT
) else (
echo Es konnte keine Internetverbindung aufgebaut werden oder der VPN-Server ist nicht bereit
echo Soll der Verbindungsaufbau weiter versucht werden? j/n
set /p wahl1 =
if '%wahl1%' == 'n' goto ende
if '%wahl1%' == 'j' (
set count = 0
goto pingINT
)
)
)
ping -n 1 gateway.privat.lokal | find /i "Antwort" > nul
if errorlevel 1 (
net stop OpenVPNService && net start OpenVPNService
set count = 0
goto pingVPN
) else (
echo Der VPN-Tunnel wurde aufgebaut
goto ende
)
set count = 1
:pingVPN
ping -n 1 gateway.privat.lokal | find /i "Antwort" > nul
if errorlevel 1 (
if %count% LSS 10 (
set count = %count% + 1
goto pingVPN
) else (
echo Der VPN-Tunnel konnte nicht aufgebaut werden
echo Soll der Verbindungsaufbau weiter versucht werden? j/n
set /p wahl2 =
if '%wahl2%' == 'n' goto ende
if '%wahl2%' == 'j' (
set count = 1
goto pingVPN
)
)
) else (
echo Der VPN-Tunnel wurde aufgebaut
)
:ende
echo Das Fenster wird geschlossen
pause
Please also mark the comments that contributed to the solution of the article
Content-Key: 268671
Url: https://administrator.de/contentid/268671
Printed on: May 6, 2024 at 01:05 o'clock
1 Comment
Moin maniacmacpain,
willkommen im Forum.
Bei den Variablendefinitionen hast du unter dem CMD-Interpreter wenig Freiheiten zur lesbaren Formatierung.
Du kannst nicht zwischen Variablennamen und dem Gleichheitszeiechen Lücken/Leerzeichen lassen, damit es optisch etwas gefälliger aussieht.
Mit
Da du aber in deinem Schnipsel jeweils "count " oder "wahl1 "/"wahl2 " mit SET definierst und später ganz, ganz andere Variablen namens "count", "wahl1" und "wahl2" prüfst, kann es nicht klappen.
Nimm bei allen SET-Anweisungen das Leerzeichen zwischen Variablennamen und Gleichheitszeichen raus.
Mehr deines Schnipsels habe ich nicht geprüft.
Grüße
Biber
willkommen im Forum.
Bei den Variablendefinitionen hast du unter dem CMD-Interpreter wenig Freiheiten zur lesbaren Formatierung.
Du kannst nicht zwischen Variablennamen und dem Gleichheitszeiechen Lücken/Leerzeichen lassen, damit es optisch etwas gefälliger aussieht.
Mit
"set count = 1
" belegst du nämlich nicht eine Variable namens "count" mit dem Wert 1 (wie es in anderen Skriptsprachen wäre), sondern eine Variable namens "Count " (also "CountLeerzeichen").Da du aber in deinem Schnipsel jeweils "count " oder "wahl1 "/"wahl2 " mit SET definierst und später ganz, ganz andere Variablen namens "count", "wahl1" und "wahl2" prüfst, kann es nicht klappen.
Nimm bei allen SET-Anweisungen das Leerzeichen zwischen Variablennamen und Gleichheitszeichen raus.
Mehr deines Schnipsels habe ich nicht geprüft.
Grüße
Biber