- Sip, solo tienes que recorrer cada caracter de tu variable y ver si es una coma. Como en Batch es algo más complicado obtener el número de caracteres de una variable, puede resultar más sencillo recorrer cierta cantidad de caracteres, en este caso 50, luego se comprueba si aún quedan caracteres en la variable para salir del For y no seguir la 50 veces en vano.
-- Y como siempre, cuando se van a manipular variables de entorno dentro de instrucciones agrupadas hay que utilizar EnableDelayedExpansion:
--- GeSHi tiene un bug con
!num:~%%a,1! en DOS así que le voy a poner PHP-BRIEF XD
Set /P "num=Introduce un n£mero decimal > "
SetLocal EnableDelayedExpansion
For /L %%a In (0,1,50) Do (
Set char=!num:~%%a,1!
If "!char!" == "," (
GoTo :continuar
)
) Else (
GoTo :continuar
)
)
:continuar
Pause
- He estado haciendo pruebas con 50000 iteraciones y veo que el FOR tiene un Bug porque demora igual XD, como si no saliera del For.
-- Tampoco es que se vaya a poner tantas iteracciones, no creo que el usuario se ponga a tipear un número cientos de dígitos XD. Esta otra opción no tiene el Bug:
Set /P "num=Introduce un n£mero decimal
> "
:inicio_bucle
)
)
:fin_bucle
-- Estoy utilizando
Call Set var1=%%var2:~%var3,1%% para que se expandan bien las variables dentro de variables y asi evitarme usar EnableDelayedExpansion.