Code:
@echo off
set /p str=Text:
set num=0
::
:start
cls
:loop
set str=%str:~0,-1%
set num=%num%+1
if "%str%"=="" goto end
goto loop
::
:end
set /a RES=%num%
echo num of characters: %RES%
echo Press any key to try again
pause >nul
Goto start
I just looked up on Google and what I found was all un-clean and ugly looking so that's why ima share that code with you IMO look much neat and professional than (i.e
 
This
@echo off
call :loadMacros
set "myVar=abcdefg"
%$strlen% result myVar
echo %result%
exit /b


:loadMacros
set LF=^


::Above 2 blank lines are required - do not remove
set ^"\n=^^^%LF%%LF%^%LF%%LF%^^"
:::: StrLen pResult pString
set $strLen=for /L %%n in (1 1 2) do if %%n==2 (%\n%
for /F "tokens=1,2 delims=, " %%1 in ("!argv!") do (%\n%
set "str=A!%%~2!"%\n%
set "len=0"%\n%
for /l %%A in (12,-1,0) do (%\n%
set /a "len|=1<<%%A"%\n%
for %%B in (!len!) do if "!str:~%%B,1!"=="" set /a "len&=~1<<%%A"%\n%
)%\n%
for %%v in (!len!) do endlocal^&if "%%~b" neq "" (set "%%~1=%%v") else echo %%v%\n%
) %\n%
) ELSE setlocal enableDelayedExpansion ^& set argv=,

exit /b
)
I don't see why people don't like to use string manipulation..