バッチには配列の概念がありません。
但し、擬似的に配列のように変数を扱うことが出来ます。
#codeprettify{{ [test.bat] cls cls ECHO OFF SET MAX=10
for /L L in (0,1,%MAX%) do SET SampleText[L]=Sample %%L
for /L %%L in (0,1,%MAX%) do (
for /F "delims=" %%a in ('ECHO %%SampleText[%%L]%%') do ECHO %%a
)
pause ECHO ON
実行結果 Sample 0 Sample 1 Sample 2 Sample 3 Sample 4 Sample 5 Sample 6 Sample 7 Sample 8 Sample 9 Sample 10 続行するには何かキーを押してください . . . }}
for /F "delims=" %%a...のところは、配列として扱う変数の内容を取得しています。
ECHO %SampleText[%%L]% では変数の値をとることは出来ません。
ECHO %SampleText[%%L]% と書いた場合、 SampleText1やSampleText2という変数として認識しません。
また、ECHO %%SampleText[%%L]%% と書いた場合も認識しません。
また、別の変数に代入するには、do ECHO %%aの部分を変更します。
#codeprettify{{ [test.bat] cls setlocal enabledelayedexpansion ECHO OFF SET MAX=10
for /L L in (0,1,%MAX%) do SET SampleText[L]=Sample %%L
for /L %%L in (0,1,%MAX%) do (
for /F "delims=" %%a in ('ECHO %%SampleText[%%L]%%') do SET VAL=%%a ECHO !VAL!
) endlocal pause ECHO ON
実行結果 Sample 0 Sample 1 Sample 2 Sample 3 Sample 4 Sample 5 Sample 6 Sample 7 Sample 8 Sample 9 Sample 10 続行するには何かキーを押してください . . . }}