プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Windowsバッチファイル(.bat)、文字数を取得する
結論から書けば

set str=【文字列】
set len=0

:LOOP
if not "%str%"=="" (
    set str=%str:~1%
    set /a len=%len%+1
    goto :LOOP
)

echo %len%

で取得できます。

サブルーチン化するのであれば、例えばこんな感じφ(--)

@echo off

call :STRLEN %1
echo %len%

pause

:STRLEN

set str=%1
set len=0

:LOOP
if not "%str%"=="" (
    set str=%str:~1%
    set /a len=%len%+1
    goto :LOOP
)

exit /b

バッチファイルに対して渡した引数が「:STRLEN」に渡されて
「:STRLEN」以降で文字数の判定をしています。

「:STRLEN」以降でやっていることは単に

1.ループで回す
2.1文字削る
3.文字数を1カウントアップ
4.1~3を文字が無くなるまで繰り返す

だけです。
コメント付きで書くと、こんな感じですねφ(--)

REM ループの先頭
:LOOP
REM 文字列「str」が空じゃなければ
if not "%str%"=="" (
    REM 文字列「str」から1文字削る
    set str=%str:~1%
    REM 文字数「Len」を1カウントアップ
    set /a len=%len%+1
    REM ループの先頭に戻る
    goto :LOOP
)

そんな感じ\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:コマンド/バッチ  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事