У меня есть пакетный файл, который инициализирует переменные через SET внутри цикла for, для набора файлов на диске:
for %%f in (%MYTARGETDIR%\*config.xml) do (
SET TMPFILE=%%F.tmp
echo In loop %TMPFILE%
)
echo End loop %TMPFILE%
когда я запускаю его в совершенно новой командной оболочке (без определения TMPFILE), эхо-цикл In пуст, но эхо-конец контура не является.
Когда я запускаю второй раз, его уже установлен и выводит его значение, игнорируя набор до тех пор, пока цикл не закроется.
Идеи, почему это так, и каково обходное решение?