以下のスクリプトを書きました。
@echo off
setlocal EnableDelayedExpansion
REM Collect source filenames from C:\Files and load into C:\doc.txt
dir C:\sources\Sourcefiles /b /a-d > C:\sourcefilenames.txt
REM fetch count of source files and store into variable count
For /F %%I in ('call C:\count.bat ') Do Set count=%%I
REM loop "count" number of times and echo temp.txt value
FOR /L %%A IN (1,1,%count%) DO (
REM call line.bat to fetch line 1,line 2 and so on of sourcefilenames.txt for each loop
call line.bat %%A>C:\temp.txt
set /p var=<C:\temp.txt
echo var:%var% ----------> returns previous run value
type C:\temp.txt ----------. returns current value of temp.txt
)
基本的に、上記のスクリプトから実行しようとしているのは、複数のループで使用するために、temp.txt の内容から変数 (var) を作成しています (temp.txt のデータは、ループが実行されるたびに変更されます)。
しかし、私が直面している問題は次のとおりです。 Echo var is:%var% command は、temp.txt の現在のコンテンツではなく、以前の実行値を返します。一方、コマンド「type C:\temp.txt」は、temp.txt の現在のコンテンツを返します。(注:他のスクリプトから変数「var」を呼び出し/作成した場合、以前の値が返されます。それ以外の場合はNullが返されます)
上記の問題に関するヘルプ/ガイダンスは本当に感謝しています。ありがとう