Que tal isso:
for %%f in (john eric mary) do if "%name%"=="%%f" goto ok
A maneira clássica é
if "%name%"=="john" goto ok
if "%name%"=="eric" goto ok
if "%name%"=="mary" goto ok
Mas isso pode ser feito de maneira mais compacta?
Infelizmente, não há um operador OR, então o que você está fazendo geralmente é a maneira mais "compacta" em um lote MS.
Mais informações, incluindo algumas ideias alternativas (não mais "compactas"):
Tags batch batch-file