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

时间:2013-07-12 07:47:14

标签: variables batch-file expansion delay

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

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!

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

*我改变了一些代码,但仍然没有解决...... :(多么糟糕的一周开始

1 个答案:

答案 0 :(得分:1)

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