文字列の長さを求めるサブルーチン

Windowsのバッチファイル(.bat)ってそのままだと、文字列の長さを求める関数もないんですね・・・以下のように文字列の長さを求めるサブルーチンを作成できます。結局ループ使わないとダメなんですね。。。

GET_STRLEN.bat

@echo off
setlocal 
call :GET_STRLEN %*
echo %strlen%
endlocal
goto :EOF

::文字長を取得する
::使用法 call :GET_STRLEN (対象の文字列)

:GET_STRLEN
set s=%1
set strlen=0
:LOOP_HEAD
if defined s (
set s=%s:~1%
set /A strlen+=1
goto :LOOP_HEAD
)
exit /b

GET_STRLEN.batのあるディレクトリで以下のように動作確認できます。実際にはbatファイルの中で使います。

>GET_STRLEN.bat abcdefg
7