bueno compa.
Desde mi punto de vista lo q creo puedes hacer es activar la variables retrasadas,
meter el texto en una variable, extraer el primer caracter, crear otra variable donde se vuelvan a agregar los caracteres para q el bucle no sea infinito, hacer la comprobacion de caracteres con if dentro de el bucle y fianlmente ir al final del code XD.
ej:
:ini
:HGP
set "txt2=
!txt:~% style="color: #448888;">h%,1!" ::aqui tu cambio de mayusculas a minusculas q puede hacerse con for.
::ej: for %%a in (A B C D E F G H) do (if not "!txt2!"=="%%a" (
::set text=!text:%txt2%=%%a)
::)
:fin
esa seria la idea, jiji un code vale mas q mil palabras.
espero haberte ayudado.
la ota opcion es hacer el bucle con el for pero con esto bastaria. creo q fue tu idea desde el principio no?
saludox
pd: no termino el code ni lo dejo funcional por q es tu trabajo no? jiji