FOR %G IN (foo, bar) DO (gem list | findstr %G)
Agora, se eu conseguir fazer isso, segure o código de erro de cada retorno.
Uma maneira melhor de lidar com isso e erro se um dos comandos no loop falhar:
FOR %G IN (foo, foobar) DO (gem list | findstr %G) || IF %ERRORLEVEL% == 0 exit
Em seguida, ele sempre retornará um non, fornecendo o nível de erro correto na saída