none
DOSプロンプト BATファイル for文内の配列変数へのアクセス方法について RRS feed

  • 質問

  • こんばんは。はじめまして。

    お世話になっております。

    DOSプロンプト BATファイル for文内の配列変数へのアクセス方法について質問させてください。

    (こちらの質問内容について、カテゴリ違いの場合には、適切なカテゴリへ移動させますので、ご指摘お願いいたします)

    下記のようなfor文を含むコードがあります。

    ーーーーーーーーーーーーーーーーーーーーーーーーーー

    setlocal enabledelayedexpansion

    set num=0

    for /f "tokens=1-3 delims=," %%i in (c:\hoge.csv) do (
    set paramA[!num!]=%%i
    set paramB[!num!]=%%j
    set paramC[!num!]=%%k

    echo !num!: %%i,%%j,%%k  <---①

    echo !num!: !paramA[!num!]!,!paramB[!num!]!,!paramC[!num!]!< ---②

    set /a num=!num!+1

    )

    ーーーーーーーーーーーーーーーーーーーーーーーーーー

    上記コードを実行すると、①と②と同じ内容が表示されると思っていたのですが、

    ①については、hoge.csvの内容が正しく表示されるのですが、

    ②の方は、num,num,numになってしまいます。

    ②について、配列変数へのアクセスについて、正しいアクセスをするためには

    どのようにすればよいでしょうか?

    ちなみに、②の添え字を変数ではなく、固定値にすると、正しく表示されているため、

    paramA/B/Cには正しく入っていることは確認できております。

    以上、よろしくお願いいたします。


    • 編集済み Shak.JP 2020年5月13日 14:27
    2020年5月13日 14:26

回答

すべての返信