2013-07-12 1 views
2

firts of all im beginner. У меня есть несколько файлов в каталоге, имя которых содержит дату, мне нужно найти, какой файл является последним (просто нужна дата). это то, что я до сих порbatch повторно инициализировать глобальную переменную внутри цикла и использовать ее вне цикла

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! 

проблема является переменной внутри цикла не получил изменения, заранее спасибо

* я изменить код, но все еще не решить ... :(чего начать ужасные недели

+0

решены, благодаря @peterwright для указателя – paiseha

ответ

1

Чтобы получить доступ к переменной valeue переменной, поскольку она изменена в цикле, вам необходимо вызвать enabledelayedexpansion (что у вас есть) И вам тогда нужно использовать! Varname! Для доступа к значению changing; `% varname % получает значение PARSE-TIME, т. е. значение inital переменной ДО цикл был НАЧАТЬ

+0

спасибо за ответ, я действительно играл вокруг с помощью ваших советов, но все же, я думаю, что я должен тщательно изучить основные из ПЕРЕМЕННОГО РАСШИРЕНИЯ первыми прежде чем сделать это, спасибо в любом случае, оценил это – paiseha

+0

решил, спасибо @peterwright за указатель – paiseha

Смежные вопросы