brotkasten
Goto Top

Batch kehrt zur Sprungmarke zurück, obwohl es pingen soll?

Guten Tag zusammen,

ich bin derzeit am Schreiben einer Batch, die eben bestimmte Komponente anpingen soll, die man per Usereingabe eingibt.

Allerdings springt er bei dem Befehl "ping" wieder an den Start und möchte meine KDNR haben.

Woran kann das liegen?

@echo on
:Start
set /p KDNR=Bitte KDNR eingeben:
IF %KDNR% GTR 10915 (
	goto Start
	)

:Auswahl
set /p Auswahl=Bitte auswaehlen, was angepingt werden soll. Test1 (h) Test2 (l) Test3 (b) Test4 (t) Test5 (d) Test6 (p) :
	IF %Auswahl% NEQ h IF %Auswahl% NEQ l IF %Auswahl% NEQ b IF %Auswahl% NEQ t IF %Auswahl% NEQ d IF %Auswahl% NEQ p (
	goto Error1
	)

REM Arbeitsverzeichnis etc. wird gesetzt
setlocal enabledelayedexpansion

set "Suchverzeichnis=D:\Testverzeichnis"  
set "Suchdatei=Daten.txt"  
set "Suchtext=%KDNR%"  

for %%a in ("%Suchverzeichnis%\%Suchdatei%") do (  
  for /f "delims=:" %%b in ('findstr /i /n /c:"%Suchtext%" "%%a"') do (  
	IF %Auswahl%==h set /a theNextline=%%b+1 > NUL
    	IF %Auswahl%==l set /a theNextline=%%b+2 > NUL
	IF %Auswahl%==b set /a theNextline=%%b+3 > NUL
	IF %Auswahl%==t set /a theNextline=%%b+4 > NUL
	IF %Auswahl%==d set /a theNextline=%%b+5 > NUL
	IF %Auswahl%==p set /a theNextline=%%b+6 > NUL

    for /f "delims=: tokens=1,*" %%i in ('findstr /n $ "%%a" ^| findstr /b "!theNextLine!"') do (  
      set IP=%%j
    )
  )
)
echo ---------------------------------------------------------------------------------
echo Es wird der Markt %KDNR% mit der gewuenschte IP-Adresse %IP% 10x angepingt.
echo ---------------------------------------------------------------------------------
ping %IP% -n 10
echo ---------------------------------------------------------------------------------
set /p Neustart=Soll ein anderer Markt angepingt werden? (y/n)
	IF %Neustart%==y (
	goto Start
	)
	IF %Neustart%==n (
	goto Exit
	)

:Exit
endlocal
exit

:Error1
echo Es konnte nicht ermittelt werden, was angepingt werden soll.
goto Auswahl

Vielen Dank im Voraus.

Mit freundlichen Grüßen.

Content-Key: 329627

Url: https://administrator.de/contentid/329627

Ausgedruckt am: 19.03.2024 um 03:03 Uhr

Mitglied: MrCount
MrCount 16.02.2017 um 13:52:00 Uhr
Goto Top
Mitglied: Brotkasten
Brotkasten 17.02.2017 um 08:39:41 Uhr
Goto Top
Guten Morgen,

vielen Dank schon mal für deine Antwort.
Ich habe mir das ganze soweit nun durchgelesen und kleine Anpassungen, wie unnötige "" entfernt oder ähnliches.

Ich habe auch ein wenig mit setlocal enabledelayedexpansion etc. herumprobiert, um diese Thematik besser zu verstehen, aber es will nicht in meinen Kopf rein, weshalb er den Befehl "ping %IP% -n 10" nicht machen möchte, aber z.B. tracert %IP% funktioniert.
Die Variablen lädt er also richtig.

Vielleicht kannst du mir in der Hinsicht noch weiterhelfen.

Mit freundlichen Grüßen.