verifique a condição “IF” dentro do loop FOR (batch / cmd)

O código que eu preciso implementar em um arquivo de lote do Windows é assim (ele está atualmente no 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++;
   }
}

Minhas perguntas são:

Esse nível de complexidade é possível nos arquivos em lotes do Windows?Se sim, como posso colocar uma condição If dentro de um loop for para ler um arquivo de texto?

Agradecimentos para sua atenção. Se você souber as respostas ou tiver alguma idéia / pista sobre como chegar à resposta, compartilhe-as.

EDIT: Estou trabalhando no Windows. Eu posso usar apenas o que é fornecido com o Windows por padrão e isso significa que eu não posso usar utilitários Unix.

questionAnswers(6)

yourAnswerToTheQuestion