当我想在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 loop
中时,变量%size%
不会改变。例如,使用此代码(我只进行了一次迭代,但在多次迭代中是相同的):
setlocal enabledelayedexpansion
for /L %%a in (1,1,1) do (
for /F "usebackq" %%H in ('zlib1.dll') do (
set size=%%~zH
)
echo %size%
)