Remove the % around the variable in the set command too:
:again
set /p letter=[(E)nable or (D)isable:]
IF /i "%letter%"=="e" goto enable
IF /i "%letter%"=="d" goto disable
echo D or E please!
goto again
The strings in each side of the ==
must exactly match. The /i
switch makes the comparison case-insensitive. If neither matches, then the next line is executed - hence always going to enable