Batchskript stürzt nach einigen Sekunden ab
Hi,
mit meinem Skript habe ich versucht eine Verbindung zu einem Gerät zu überwachen. Falls die Verbindung einmal abbricht, soll noch 30 mal versucht werden eine erfolgreiche Verbindung herzustellen bevor das Programm dann beendet werden soll. Falls er es schafft eine erfolgreiche Verbindung wiederherzustellen soll er einfach in die Hauptschleife wieder zurück kehren.
Mein Problem besteht darin, dass nachdem ich die Datei ausführe und die IP eingebe, dass das Programm nach ca 1-10 mal (das variiert immer) sich einfach selber beendet.
Vielen Dank im Voraus
Batchskript:
@echo off
:start
set /p ip="Bitte IP hier eingeben:"
echo Ziel-IP-Adresse: %ip% > Report.txt
echo. >> Report.txt
echo Startzeitpunkt: %date% - %time% >> Report.txt
echo. >> Report.txt
goto schleife
:schleife
ping /n 1 %ip% | findstr /r /c:"[0-9] *ms" >> Report.txt
echo Uhrzeit: %time% >> Report.txt
echo, >> Report.txt
echo am Pingen
if %errorlevel%==1 goto pingerror
timeout /t 1 /nobreak > nul
goto schleife
:pingerror
echo, >> Report.txt
echo, >> Report.txt
echo ! Nicht erreichbar ! >> Report.txt
echo, >> Report.txt
echo IP-Adresse: %ip% >> Report.txt
echo Datum: %date% >> Report.txt
echo Uhrzeit: %time% >> Report.txt
echo, >> Report.txt
echo -------------------------------------------------------------- >> Report.txt
echo -------------------------------------------------------------- >> Report.txt
echo -------------------------------------------------------------- >> Report.txt
goto erneutpingen
:erneutpingen
echo Erneuter Pingversuch Nr.%versuche% >> Report.txt
ping /n 1 %ip% >> Report.txt
echo Uhrzeit: %time% >> Report.txt
echo --- >> Report.txt
echo, >> Report.txt
echo, >> Report.txt
if %errorlevel%==0 goto variablenreset
if %versuche%==30 goto programmende
set /a "versuche+=1"
goto erneutpingen
:programmende
echo Endzeitpunkt: %date% - %time% >> Report.txt
echo Programm zuende
:variablenreset
set /a "versuche=1"
goto schleife
mit meinem Skript habe ich versucht eine Verbindung zu einem Gerät zu überwachen. Falls die Verbindung einmal abbricht, soll noch 30 mal versucht werden eine erfolgreiche Verbindung herzustellen bevor das Programm dann beendet werden soll. Falls er es schafft eine erfolgreiche Verbindung wiederherzustellen soll er einfach in die Hauptschleife wieder zurück kehren.
Mein Problem besteht darin, dass nachdem ich die Datei ausführe und die IP eingebe, dass das Programm nach ca 1-10 mal (das variiert immer) sich einfach selber beendet.
Vielen Dank im Voraus
Batchskript:
@echo off
:start
set /p ip="Bitte IP hier eingeben:"
echo Ziel-IP-Adresse: %ip% > Report.txt
echo. >> Report.txt
echo Startzeitpunkt: %date% - %time% >> Report.txt
echo. >> Report.txt
goto schleife
:schleife
ping /n 1 %ip% | findstr /r /c:"[0-9] *ms" >> Report.txt
echo Uhrzeit: %time% >> Report.txt
echo, >> Report.txt
echo am Pingen
if %errorlevel%==1 goto pingerror
timeout /t 1 /nobreak > nul
goto schleife
:pingerror
echo, >> Report.txt
echo, >> Report.txt
echo ! Nicht erreichbar ! >> Report.txt
echo, >> Report.txt
echo IP-Adresse: %ip% >> Report.txt
echo Datum: %date% >> Report.txt
echo Uhrzeit: %time% >> Report.txt
echo, >> Report.txt
echo -------------------------------------------------------------- >> Report.txt
echo -------------------------------------------------------------- >> Report.txt
echo -------------------------------------------------------------- >> Report.txt
goto erneutpingen
:erneutpingen
echo Erneuter Pingversuch Nr.%versuche% >> Report.txt
ping /n 1 %ip% >> Report.txt
echo Uhrzeit: %time% >> Report.txt
echo --- >> Report.txt
echo, >> Report.txt
echo, >> Report.txt
if %errorlevel%==0 goto variablenreset
if %versuche%==30 goto programmende
set /a "versuche+=1"
goto erneutpingen
:programmende
echo Endzeitpunkt: %date% - %time% >> Report.txt
echo Programm zuende
:variablenreset
set /a "versuche=1"
goto schleife
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 593313
Url: https://administrator.de/contentid/593313
Ausgedruckt am: 22.11.2024 um 09:11 Uhr
4 Kommentare
Neuester Kommentar
Habe jetzt keinen eindeutigen Fehler gefunden, weil ich nicht genau weis was du mit dem Script anstellen willst, aber du könntest mal das
Dadurch ist es einfacher den Fehler zu finden.
LG BatchCoder
@echo off
weglassen und vor dem Ende jeder Schleife ein pause
hinzufügen. Der neue Code würde dann so aussehen::start
set /p ip="Bitte IP hier eingeben:"
echo Ziel-IP-Adresse: %ip% > Report.txt
echo. >> Report.txt
echo Startzeitpunkt: %date% - %time% >> Report.txt
echo. >> Report.txt
pause
goto schleife
:schleife
ping /n 1 %ip% | findstr /r /c:"[0-9] *ms" >> Report.txt
echo Uhrzeit: %time% >> Report.txt
echo, >> Report.txt
echo am Pingen
if %errorlevel%==1 goto pingerror
timeout /t 1 /nobreak > nul
pause
goto schleife
:pingerror
echo, >> Report.txt
echo, >> Report.txt
echo ! Nicht erreichbar ! >> Report.txt
echo, >> Report.txt
echo IP-Adresse: %ip% >> Report.txt
echo Datum: %date% >> Report.txt
echo Uhrzeit: %time% >> Report.txt
echo, >> Report.txt
echo -------------------------------------------------------------- >> Report.txt
echo -------------------------------------------------------------- >> Report.txt
echo -------------------------------------------------------------- >> Report.txt
pause
goto erneutpingen
:erneutpingen
echo Erneuter Pingversuch Nr.%versuche% >> Report.txt
ping /n 1 %ip% >> Report.txt
echo Uhrzeit: %time% >> Report.txt
echo --- >> Report.txt
echo, >> Report.txt
echo, >> Report.txt
if %errorlevel%==0 goto variablenreset
if %versuche%==30 goto programmende
set /a "versuche+=1"
pause
goto erneutpingen
:programmende
echo Endzeitpunkt: %date% - %time% >> Report.txt
echo Programm zuende
:variablenreset
set /a "versuche=1"
pause
goto schleife
Dadurch ist es einfacher den Fehler zu finden.
LG BatchCoder