コード
get_strlen.bat
@echo off
rem 引数がない場合は終了する
if "%~1"=="" (echo 引数がありません & pause & exit /b)
rem 変数初期化(長さ)
set length=0
rem 長さ取得サブルーチンを実行
call :get_strlen %~1
echo 文字数:%length%
exit /b
rem ====サブルーチン====
:get_strlen
set str_in=%~1
:label_top
rem 長さ加算
set /a length+=1
rem 1文字減らす
set str_in=%str_in:~1%
rem 文字列がなくなったら終了
if not "%str_in%"=="" (goto :label_top)
exit /b
文字列長を取得する部分はサブルーチンにし、流用しやすくしました。
サブルーチンの中でループを回し、1文字削るごとにカウンタを+1します。
文字列がなくなったらループ終了し、そのときのカウンタの数値が文字列長です。