Descubra si una variable de entorno contiene una subcadena

Necesito averiguar si una determinada variable de entorno (digamos Foo) contiene una subcadena (digamos BAR) en un archivo por lotes de Windows. ¿Hay alguna manera de hacer esto usando solo comandos de archivos por lotes y / o programas / comandos instalados de manera predeterminada con Windows?

Por ejemplo

set Foo=Some string;something BAR something;blah

if "BAR" in %Foo% goto FoundIt     <- What should this line be? 

echo Did not find BAR.
exit 1

:FoundIt
echo Found BAR!
exit 0

¿Cuál debería ser la línea marcada arriba para hacer que este simple archivo por lotes imprima "Encontrado BAR"?

Respuestas a la pregunta(4)

Su respuesta a la pregunta