Verifique la condición "IF" dentro del bucle FOR (batch / cmd)

El código que necesito implementar en un archivo por lotes de Windows es como este (actualmente está en Perl):

while(<file>)
{
   if($_ =~ m/xxxx/)
   {
      print OUT "xxxx is found";
   }
   elsif($_ =~ m/yyyy/)
   {
      next;
   }
   else
   {
      ($a,$b) = split(/:/,$_);
      $array1[$count] = $a;
      $array2[$count] = $b;
      $count++;
   }
}

Mis preguntas son:

¿Es este nivel de complejidad posible en los archivos por lotes de Windows?Si es así, ¿cómo puedo poner una condición If dentro de un bucle for para leer un archivo de texto?

Gracias por tu atención. Si conoce las respuestas o tiene alguna idea / pista sobre cómo llegar a la respuesta, compártalas.

EDITAR: Estoy trabajando en Windows. Puedo usar solo lo que se proporciona con Windows por defecto y eso significa que no puedo usar las utilidades de Unix.

Respuestas a la pregunta(6)

Su respuesta a la pregunta