Windows 批处理文件。for循环中的for循环。内部for循环不工作

Windows 批处理文件。for循环中的for循环。内部for循环不工作,windows,for-loop,batch-file,cmd,delayedvariableexpansion,Windows,For Loop,Batch File,Cmd,Delayedvariableexpansion,当我想在for循环中获取文件大小时,我有一种奇怪的行为 为了说明问题,我简化了代码 当我执行这段代码时,它工作了,我有两个正确的文件大小 for /F "usebackq" %%H in ('zlib1.dll') do ( set size=%%~zH ) echo %size% for /F "usebackq" %%H in ('libzstd.dll') do ( set size=%%~zH ) echo %size%

当我想在
for
循环中获取文件大小时,我有一种奇怪的行为

为了说明问题,我简化了代码

当我执行这段代码时,它工作了,我有两个正确的文件大小

for /F "usebackq" %%H in ('zlib1.dll') do (
        set size=%%~zH
)
echo %size%

for /F "usebackq" %%H in ('libzstd.dll') do (
    set size=%%~zH
)
echo %size%
但是当我在另一个
for循环
中包含此代码时,变量
%size%
不会改变。例如,对于这段代码(我只进行了一次迭代,但更多的迭代也是如此):

setlocal enabledelayedexpansion
for /L %%a in (1,1,1) do (
    for /F "usebackq" %%H in ('zlib1.dll') do (
        set size=%%~zH
    )
    echo %size%
)