Realmente es muy curioso, por cierto que tal este codigo basado en el primer metodo.
Es para poder contar los elementos con un separador.
Espero que a vosotros tambien os ayude.
Es para poder contar los elementos con un separador.
Código [Seleccionar]
@echo off
cls
call :LENGHT "uno,dos,tres,cuatro,cinco,seis"
echo %LEN%
pause
:LENGHT STRING
SETLOCAL ENABLEEXTENSIONS
SET "STRING=%~1"
:: Empieza el contador en 0
IF "%TMPVAR%"=="" SET/A CONT=1
:: Si no se mandan parametros salimos
IF NOT DEFINED STRING ENDLOCAL & EXIT/B 1
set "res="
for /f "tokens=%CONT% delims=," %%a in (%1) do (
set res=%%a
)
:: Extracción de caracteres que aumenta en 1
CALL SET "VAR=%res%"
IF DEFINED VAR (
IF NOT "%VAR%"=="" SET "TMPVAR=$" & SET/A CONT+=1 & CALL %~0 "%STRING%"
) ELSE (
SET/A CONT-=1
CALL SET LEN=%%CONT%%
)
ENDLOCAL & SET "LEN=%LEN%"
EXIT /B
Espero que a vosotros tambien os ayude.