if /I
- это то, что вы хотите:
@echo off
set colour=Default
set /p "colour=Please choose one of the supported colours for the name(Red,Blue or Green)"
if /i "%colour%" == "red" goto :SupportedColour
if /i "%colour%" == "blue" goto :SupportedColour
if /i "%colour%" == "green" goto :SupportedColour
echo %colour% is not supported..
goto :EOF
:SuportedColour
echo You chose a supported colour: %colour%
Однако я вижу, что у вас есть только одна метка, которую вы goto
, что составляет SupportedColour
, поэтому я подозреваю, что вы хотите использовать только одну метку, если какой-либо из этих цветов введен, поэтому цикл for может быть лучшим вариантом:
@echo off
set colour=Default
set "mycolours=blue red green"
set /p "colour=Please choose one of the supported colours for the name(Red,Blue or Green)"
for %%i in (%mycolours%) do if /i "%%i" == "%colour%" goto :SupportedColour
echo %colour% is not supported
goto :EOF
:SupportedColour
echo You chose a supported colour: %colour%
Здесь вам, однако, также не нужно иметь переход, но я добавил его, так как не уверен в том, что делает остальная часть вашего кода.