I know, that this question is pretty old. However, I do not like unneccessary loops or multiple case if statements when only one can qualify anyway. You might want to try this instead:
setlocal ENABLEDELAYEDEXPANSION
set "mo=%date:~3,2%"
if "%mo:~0,1%"=="0" set "mo=%mo:~1%"
set names=JanFebMarAprMayJunJulAugSepOctNovDec
set /a "pos = 3 * %mo%" - 3
set "ti=!names:~%pos%,3!"
echo %ti%
pause
For mo you will get 1...12, for pos an index 0,3...33 into the string "JanFeb...Dec", and, assuming it is May (mo=5), ti will then output:
May
Hope it still helps, if not the OP, then someone else.
Note: not locale independent, you must know where from to pick your month digits.