Syntax-Fehler in Batch?

...komplette Frage anzeigen

4 Antworten

Wenn du das @echo off probeweise wegnimmst, siehst du eher, in welcher Zeile der Fehler auftritt.

Das ist hier in einer Zeile, die zu

if ==x (

expandiert wird. Offensichtlich schafft es das Skript, die Variablen m1, m2, m3 immer wieder auf leer zu setzen

Das ist einer der Gründe, weshalb man if-Abfragen mit Variablen, die nicht 100%ig nicht-leer sind, schreibt als

if "%variable%"=="wert"

(also mit  Anführungszeichen)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Crostes
03.02.2017, 11:05

Danke funktioniert jetzt :D

0

@echo off
@mode con cols=60 lines=30

set m1=x
set m2=
set m3=

:Menu
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo [%m1%]Start[%m1%]
echo.
echo.
echo.
echo [%m2%]Einstellungen[%m2%]
echo.
echo.
echo.
echo [%m3%]Beenden[%m3%]
echo.
echo.
echo.
echo.
echo.
echo.
echo.

echo .==============Mit S W - Tasten auswählen!===============.

choice /n /c:SWA
if errorlevel 255 goto Menu
if errorlevel 3 goto st
if errorlevel 2 goto hoch
if errorlevel 1 goto runter
if errorlevel 0 goto Menu

:runter
if %m1%==x (
set m1=
set m2=x
set m3=
goto Menu
)

if %m2%==x (
set m1=
set m2=
set m3=x
goto Menu
)

if %m3%==x (
set m1=x
set m2=
set m3=
goto Menu
)

:hoch
if %m1%==x (
set m1=
set m2=
set m3=x
goto Menu
)

if %m2%==x (
set m1=x
set m2=
set m3=
goto Menu
)

if %m3%==x (
set m1=
set m2=x
set m3=
goto Menu
)

:st

goto Menu

pause

Antwort bewerten Vielen Dank für Deine Bewertung

Fehlt das @ vor choice

@CHOICE /C:123p

Antwort bewerten Vielen Dank für Deine Bewertung

In welcher Zeile?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Crostes
02.02.2017, 22:14

Weiß ich leider nicht aber ich vermute mal irgendwo bei unter choice

Syntax-Fehler (set)

0

Was möchtest Du wissen?