我有一个批处理文件,它在一个for循环中使用SET初始化一组磁盘上的文件的变量:
for %%f in (%MYTARGETDIR%\*config.xml) do (
SET TMPFILE=%%F.tmp
echo In loop %TMPFILE%
)
echo End loop %TMPFILE%
当我在全新的命令行窗口中运行此命令(未定义TMPFILE),循环内的echo为空,但循环结束后的echo不为空。
第二次运行时,TMPFILE已经被设置,并输出其值,忽略了直到循环关闭才进行的设置操作。
有什么想法是为什么会这样,以及解决方法是什么?