Windows-バッチ,文字列を1文字ずつ動的配列に格納する

スポンサーリンク

鍛錬 327

Windows-バッチ,文字列を1文字ずつ動的配列に格納する

文字列を 1 文字ずつ、動的な配列に格納するバッチファイルを作成しました。

スポンサーリンク

バッチファイル

以下は、文字列を 1 文字ずつ動的配列に格納するバッチファイル、set_array.bat です。

今回は、次に示す文字列を動的配列に格納しています。

文字列:He succeeded to step up.

@echo off

rem ファイル全体の setlocal
setlocal

rem 配列に格納する文字列
set str=He succeeded to step up.

rem 配列に文字列を1文字ずつ格納
set len=0
call :SET_ARRAY "%str%"

echo 格納した文字列の長さ = %len%
echo;

set /A elmt_num=%len%-1

rem 遅延環境変数の展開
setlocal enabledelayedexpansion

rem 配列に格納した文字列を1文字ずつ印字
set i=0
for /l %%i in (0,1,%elmt_num%) do (
	echo array[%%i] = !array[%%i]!
)

rem 遅延環境変数の展開終了
endlocal

rem ファイル全体の endlocal
endlocal

exit /b 0

:SET_ARRAY
set str_tmp=%~1

:LOOP_SET
if not "%str_tmp%"=="" (
	set array[%len%]=%str_tmp:~0,1%
	set str_tmp=%str_tmp:~1%
	set /A len=%len%+1
	goto :LOOP_SET
)
スポンサーリンク

実行結果

以下は、set_array.bat を実行しています。

D:\>
D:\>set_array
格納した文字列の長さ = 24

array[0] = H
array[1] = e
array[2] =
array[3] = s
array[4] = u
array[5] = c
array[6] = c
array[7] = e
array[8] = e
array[9] = d
array[10] = e
array[11] = d
array[12] =
array[13] = t
array[14] = o
array[15] =
array[16] = s
array[17] = t
array[18] = e
array[19] = p
array[20] =
array[21] = u
array[22] = p
array[23] = .

 
上記に示した通り、文字列を 1 文字ずつ動的配列に格納することができました。

タイトルとURLをコピーしました