|
|
●DOS/Windowsのバージョン↓ Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. これは少し難しい話かもしれませんが 二重ループの中で、環境変数を設定して、取得したいのですが、 おかしな動きをします。 -------------------------------- SET FIRST_COUNT=1 :FIRST_LOOP if defined VAR!FIRST_COUNT! ( REM VAR数字1~ 数個の環境変数を定義ずみで、取得したい REM これは取得できている echo !VAR%FIRST_COUNT%! SET SECOND_COUNT=1 :SECOND_LOOP if defined VAR!FIRST_COUNT!!SECOND_COUNT! ( REM VAR数字1数字2~ 数個の環境変数を定義ずみ REM 取得したい echo !VAR%FIRST_COUNT%%SECOND_COUNT%! REM が、なぜか、 REM 数字2が1の場合、つまりSECOND_COUNTが1 REM のとき、環境変数の値が取得できない!!!!! set /a SECOND_COUNT+=1 goto SECOND_LOOP ) ) set /a FIRST_COUNT+=1 goto FIRST_LOOP -------------------------------- 上のような状況にあります。 二重ループで、二重目のループないで、SECOND_COUNTが 1のとき、環境変数が取得できません。 遅延展開と関係あるのだと思いますが、理屈がよく わかりません。 そして、SET SECOND_COUNT=1 の部分を 最初のIF文 if defined VAR!FIRST_COUNT! の外にだしたら、取得できるようになりました。 これはどのような動きをしているのでしょうか? 難しくよくわかりません。 ごちゃごちゃしていてみません。 |
|
|
|
|
|
|
|
|
|
|
|
|