mmmm se ven buenas y bien trabajadas
yo hice hace poco un code de la longitud de una string, bastante mas sencillo pero que sirve igual
set /p string= ingrese cadena
^> :ini
call:script "
%%string%:~
%cont%,1
%%"
:script
me acabo de dar cuenta de que la de shadow al estar en modo comando solo cuenta hasta el primer espacion y el mio cuenta todo, los espacios y mas palabras
se puede arreglar poniendo un
for /f "tokens=1 delims= " %%a in ("%string%") do (set string=%%a)
si no tambien pueden modificar el de shadow para que no coja solo una palabra, sería cambiar la linea
por
saludos