|you can't, not really, you have to juggle things around a bit.|
in your example, that is easy:
if /i '%choice%' == 'y' echo yes
the /i says to ignore case.
you can construct ANDs by stacking IFs, (since each depends on outcome of preivous IF):
if x=1 if y=2 if z=3 echo 1 2 3
you can build elaborate structures of nested IFs, but that can become cumbersome in complex situations.
One way to construct a "case" structure is to call labels:
set /p test=enter the subroutine (one, two) you want to run:
call :%test% 2>nul
if %errorlevel% gtr 0 (
:: this happens if there's no label...
echo that selection is not an option
) else (
if you need to have multiple instances of similar labels in various "case" constructs, to keep them from conflicting , just add some letters to the label to make it unique, like:
labels are not case sensitive, :Y same as :y