Немного опоздал в игре, но, тем не менее, предполагал, может ли это помочь кому-нибудь наткнуться на вопрос. Для этого я использую комбинацию эхо-канала для findstr, вот так:
(echo ":1: :2:" | findstr /i ":%1:" 1>nul 2>nul) && (
echo Input is either 1 or 2
)
Поскольку findstr - это внешняя команда, я рекомендую не использовать ее внутри цикла, который может проходить тысячи итераций. Если это не так, это должно решить, что вы пытаетесь сделать, вместо использования нескольких if. Кроме того, нет ничего особенного в выборе «:», просто используйте разделитель, который вряд ли будет частью значения в% 1.
Благодаря остальным людям, указавшим на другую ссылку, у которой, похоже, есть похожий вопрос, я также опубликую этот ответ там, на тот случай, если кто-то наткнется на этот вопрос и не дойдет до него.