Dämliches CMD-Script will nicht (if, goto)

TheEvilWorm

Ensign
Registriert
Nov. 2008
Beiträge
137
Mein Script sieht so aus:
Code:
@echo off
SET /P answer=Start homeserver? (y/n)

if "%answer"=="y" goto yes

exit

:yes
start "" WolCmd.exe 000c6e9ff0f6 192.168.2.20 255.255.255.0 9

Leider wird das exit IMMER erreicht, auch wenn ich 'y' eingeben. Eigentlich sollte meine Logik doch funktionieren: wenn 'y' eingeben wird, springt er doch zu yes? Wieso wird vorher schon das exit ausgeführt? Ich erkenne das daran, dass kein Paket gesendet wird, auch wenn ich y eingeben. Wenn ich das exit weglasse, wird IMMER ein Paket gesendet, was ja auch nicht der Sinn der Sache ist.

Vielen Dank im Voraus!
 
Code:
@echo off
echo Start homeserver? (y/n)
SET /P answer=
 
if %answer% == y (goto yes) else goto exit

:yes
start "" WolCmd.exe 000c6e9ff0f6 192.168.2.20 255.255.255.0 9

:exit
exit

hab zwar nicht viel ahnung von batch aber so klappts mit "if" bei mir :>
 
Zuletzt bearbeitet:
Im if muss die Variable mit einem % enden. Und warum tust du die Variable in Hochkommata? Das kenne ich nur von Bash-Skripten unter Linux.
 
die Hochkommata werden benutzt um eine Leereingabe auszuschliessen. Man kann auch das benutzen:

Code:
IF /I "%answer%"=="y" (Goto yes) Else Goto EOF

bzw. Choice:

Code:
Choice /M "Start Homeserver y/n"
If Errorlevel 2 Goto No
If Errorlevel 1 Goto Yes

Goto EOF
 
Zuletzt bearbeitet: (Schreibfehler bereinigt)
Danke für eure sehr schnellen und hilfreichen Antworten! Hab mir erstmal an die Stirn geklatscht, weil ich das %-Zeichen vergessen hatte. Eure Vorschläge funktionieren einwandfrei.
 
Zurück
Oben