Batch es la peor elección para tareas como esta, aunque se puede llegar a hacer es mejor que lo olvides, requiere demasiada escritura de código comparado con cualquier otro lenguaje, Batch es una herramienta demasiado incompetente y en casos como este es complétamente inutil.
La proposición de "
convertir windows en Linux" sólamente para codear un script funcional en mi opinión es algo muy exagerado y complétamente innecesario, ya que existen decenas de buenos lenguajes compatibles con Windows, por eso antes que instalar Linux en Windows es preferible instalar el interprete de un lenguaje compatible con Windows (Ruby/Python/Perl etc...).
De todas formas eso tampoco es necesario, ya que en Windows puedes usar de forma nativa javascript, VisualBasicScript y PowerShell, que tienen métodos para crear arrays y todo lo demás que llegues a necesitar para este script que precisas (cosa que Batch, no tiene).
Ejemplo en VisualBasicScript:
CSVLine = "Val1; Val2; Val3; Val4; Val5"
Tokens = Split(CSVLine, ";")
For Each Token in Tokens
Wscript.Echo(Token)
Next
Wscript.Quit(0)
Saludos