Lo que ocurre es que en batch el símbolo
^ es un símbolo de escape, no sirve para elevar un número.
Leete esto a ver si te ayuda
Saludos
he leido los tres codigos, uno de ellos no entiendo .==.
en el segundo el codigo esta mal
y en el tercero se utilizar vbscript y puedo mezclarlos a los dos pero se lo basio en vbscript