3

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

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!

问题是循环内的变量没有得到改变,在此先感谢

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

4

1 回答 1

1

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

于 2013-07-12T07:50:59.993 回答