批量重新初始化循环内部的全局变量,并在循环外部使用它



所有im初学者的第一次。我在目录中有多个文件,其名称包含日期,我需要找到哪个文件是最新的(只需要日期)。这就是我目前拥有的

set currentYear=2013
set logDate=0
set tempLogDate=0
set fileName2=0
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /a-d/b/s "%logDirectory2%"^|findstr /riv "^.*\[^\]*%now%[^\]*$"') do (
set fileName2=%%a
call set fileName2=!fileName2!:!currentYear!=%%
set tempLogDate=%currentYear%!fileName2:~0,4!
if !tempLogDate! GTR %logDate% ( set logDate=%tempLogDate% )
)
echo !logDate!

问题是可变的内部循环没有得到改变,提前感谢

*我更改了一些代码,但仍然没有解决…:(开始是多么可怕的一周

为了在循环中访问变量的值,您需要调用enabledelayedexpansion(您已经调用了),然后需要使用!varname!访问changing值;`%varname%访问PARSE-TIME值,即初始变量值BEFORE循环是STARTED

最新更新