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

質問
-
こんばんは。はじめまして。
お世話になっております。
DOSプロンプト BATファイル for文内の配列変数へのアクセス方法について質問させてください。
(こちらの質問内容について、カテゴリ違いの場合には、適切なカテゴリへ移動させますので、ご指摘お願いいたします)
下記のようなfor文を含むコードがあります。
ーーーーーーーーーーーーーーーーーーーーーーーーーー
setlocal enabledelayedexpansion
set num=0
for /f "tokens=1-3 delims=," %%i in (c:\hoge.csv) do (
echo !num!: %%i,%%j,%%k <---①
set paramA[!num!]=%%i
set paramB[!num!]=%%j
set paramC[!num!]=%%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
回答
-
チャブーンです。
この件ですが、構文に誤りがあると思います。
REM 誤り REM echo !num!: !paramA[!num!]!,!paramB[!num!]!,!paramC[!num!]!< ---② REM 正しい echo %num%: !paramA[%num%]!,!paramB[%num%]!,!paramC[%num%]!
使い方は以下の過去ログで確認してください。
フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。
- 編集済み チャブーンMVP 2020年5月14日 1:31
- 回答の候補に設定 FarenaMicrosoft contingent staff, Moderator 2020年5月29日 2:49
- 回答としてマーク kumo-msftMicrosoft contingent staff, Moderator 2020年10月15日 2:10
すべての返信
-
チャブーンです。
この件ですが、構文に誤りがあると思います。
REM 誤り REM echo !num!: !paramA[!num!]!,!paramB[!num!]!,!paramC[!num!]!< ---② REM 正しい echo %num%: !paramA[%num%]!,!paramB[%num%]!,!paramC[%num%]!
使い方は以下の過去ログで確認してください。
フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。
- 編集済み チャブーンMVP 2020年5月14日 1:31
- 回答の候補に設定 FarenaMicrosoft contingent staff, Moderator 2020年5月29日 2:49
- 回答としてマーク kumo-msftMicrosoft contingent staff, Moderator 2020年10月15日 2:10