kunert0345
Goto Top

BUG in batch datei (loop.bat)

Ich habe ein problehm mit der unten genanten batch datei.
immer wen ich den befehl "loop help" eingebe bekomme ich immer diese fehlermeldung
"==0" ist syntaktisch an dieser stelle nicht vereinbar.
das pasiert bei jedem einstelligen befehl z.B. loop netstat, loop /?.

ich habe mich schon ewig damit beschäftigt nd keine lösung daführ gefunden.
wen jemand unter euch eine ide hat were das klasse (ich freue mich auf jeden vorschlag zur problehmlösung) danke.

loop.bat
@echo off
if %1==--help (echo Fhrt den angeg„benen Befehl immer wieder aus
echo .
echo   loop  Befehl
echo .
echo   -t Zahl      Zeitintervalle bis zum n„chsten Sart, Standart Wert ist 1
echo   -t 0         Abschalten der Verz”gerung
goto 4)
if %1==-t (if %2==0 goto 2
set n=%2
goto 3)
:1
cls
%1 %2 %3 %4 %5 %6 %7 %8 %9
ping -n 1 1.1.1.1 > nul
goto 1
:2
cls
%3 %4 %5 %6 %7 %8 %9
goto 2
:3
cls
%3 %4 %5 %6 %7 %8 %9
ping -n %n% 1.1.1.1 > nul
goto 3
:4

Content-ID: 68881

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

Ausgedruckt am: 22.11.2024 um 07:11 Uhr

bastla
bastla 18.09.2007 um 12:41:32 Uhr
Goto Top
Hallo kunert0345 und willkommen im Forum!

Mein Vorschlag (inkl einiger kleinerer kosmetischer Korrekturen) sähe so aus:
@echo off
if {{comment_strings:23617355782}}=="--help" (  
	echo Fhrt den angegebenen Befehl immer wieder aus
	echo.
	echo   loop  Befehl
	echo.
	echo   -t Zahl      Zeitintervalle bis zum n„chsten Start, Standardwert ist 1
	echo   -t 0         Abschalten der Verz”gerung
	goto :eof
)

if "%~1"=={{comment_strings:2112839485}} (  
	if "%~2"=="0" goto 2  
	set n=%~2
	goto 3
)

:1
cls
%1 %2 %3 %4 %5 %6 %7 %8 %9
ping -n 1 127.0.0.1 > nul
goto 1

:2
cls
%3 %4 %5 %6 %7 %8 %9
goto 2

:3
cls
%3 %4 %5 %6 %7 %8 %9
ping -n %n% 127.0.0.1 > nul
goto 3
Zur Lösung des "if"-Problems habe ich an den entsprechenden Stellen Anführungszeichen gesetzt, wodurch auch bei fehlenden Parametern noch ein Vergleich möglich ist. Beim Aufruf mit "loop help" ergäbe sich dann in der relevanten Zeile:
if "help"=="-t" (if ""=="0" goto 2  
Vielleicht noch kurz zu %~1: Damit werden eventuell übergebene Anführungszeichen entfernt (da ich ohnehin selbst welche setze) - wäre hier nicht unbedingt nötig, schadet aber auch nicht.

Grüße
bastla
kunert0345
kunert0345 19.09.2007 um 10:14:45 Uhr
Goto Top
thx leuft super (bin über glücklich) als nähstes schreibe ich die ausgabe in eine temorere datei (damit das ruckeln aufhört) face-smile .