ホーム > 配列を扱う

バッチファイルでは他のプログラム言語にあるような配列を扱えません。しかし,配列のような使い方をすることは可能です。添字を含んだものをそのまま変数名にしちゃいます。

  1. for文で数字を配列っぽく扱います
  2. [バッチファイル]
    for /l %%n in (0,1,4) do (
    set /a hairetsu[%%n]=%%n+1
    )
    echo %hairetsu[0]%
    echo %hairetsu[1]%
    echo %hairetsu[2]%
    echo %hairetsu[3]%
    echo %hairetsu[4]%

    --- 実行結果 ---
    1
    2
    3
    4
    5
    (いい感じです)

    以下で使用する frults1.txt はこんな感じになっています。

    C:\TIPS>type fruits1.txt
    apple
    banana
    orange
    kiwi
    mango

  3. ファイルを読み込み配列っぽく読み込みます
  4. [バッチファイル]
    setlocal enabledelayedexpansion
    set n=0
    for /f %%i in (fruit1.txt) do (
    set kudamono[!n!]=%%i
    set /a n=n+1
    )
    echo %kudamono[0]%
    echo %kudamono[1]%
    echo %kudamono[2]%
    echo %kudamono[3]%
    echo %kudamono[4]%
    endlocal

    --- 実行結果 ---
    apple
    banana
    orange
    kiwi
    mango
    (いい感じです)

    以下で使用する frults2.txt はこんな感じになっています。

    C:\TIPS>type fruits2.txt
    apple 10
    banana 20
    orange 30
    kiwi 40
    mango 50

  5. ファイルを読み込み二次元配列っぽく読み込みます
  6. [バッチファイル]
    setlocal enabledelayedexpansion
    set n=0
    for /f "tokens=1,2 delims=," %%i in (fruits2.txt) do (
    set kudamono[!n!][0]=%%i
    set kudamono[!n!][1]=%%j
    set /a n=n+1
    )
    echo %kudamono[0][0]% %kudamono[0][1]%
    echo %kudamono[1][0]% %kudamono[1][1]%
    echo %kudamono[2][0]% %kudamono[2][1]%
    echo %kudamono[3][0]% %kudamono[3][1]%
    echo %kudamono[4][0]% %kudamono[4][1]%
    endlocal

    --- 実行結果 ---
    apple 10
    banana 20
    orange 30
    kiwi 40
    mango 50
    (いい感じです)

  7. ファイルを読み込み十一次元配列っぽく読み込みます
  8. [バッチファイル]
    setlocal enabledelayedexpansion
    set n=0
    for /f "tokens=1-11 delims=," %%i in (M-theory.txt) do (
    set superstring[!n!][0]=%%i
    set superstring[!n!][1]=%%j
    set superstring[!n!][2]=%%k
    set superstring[!n!][3]=%%l
    set superstring[!n!][4]=%%m
    set superstring[!n!][5]=%%n
    set superstring[!n!][6]=%%o
    set superstring[!n!][7]=%%p
    set superstring[!n!][8]=%%q
    set superstring[!n!][9]=%%r
    set superstring[!n!][10]=%%s
    set /a n=n+1
    )
    echo %superstring[0][0]% %superstring[0][1]% %superstring[0][2]% %superstring[0][3]% %superstring[0][4]% %superstring[0][5]% %superstring[0][6]% %superstring[0][7]% %superstring[0][8]% %superstring[0][9]% %superstring[0][10]%
    echo %superstring[1][0]% %superstring[1][1]% %superstring[1][2]% %superstring[1][3]% %superstring[1][4]% %superstring[1][5]% %superstring[1][6]% %superstring[1][7]% %superstring[1][8]% %superstring[1][9]% %superstring[1][10]%
    echo %superstring[2][0]% %superstring[2][1]% %superstring[2][2]% %superstring[2][3]% %superstring[2][4]% %superstring[2][5]% %superstring[2][6]% %superstring[2][7]% %superstring[2][8]% %superstring[2][9]% %superstring[2][10]%
    endlocal

    --- 実行結果 ---
    (宇宙の謎が解けたのか,それは秘密です)

確認したOS: Windows 10

↑ PAGE TOP