Хотя мне не совсем ясно, чего именно вы хотите достичь, следующий фрагмент должен делать то, что вы хотите.Просто добавьте его в ваш скрипт:
setlocal enabledelayedexpansion
for /f %%a in ('dir /b /ad /on') do (
@rem shift the current value through the variables
set previous=!current!
set current=!next!
set next=%%a
@rem check if the "current" value is the right one
if "!current!"=="%folder%" goto :found
)
@rem if we get here the loop has finished without %current% having the expected value
@rem but we need to check if it was the last folder in the directory
if "%next%"=="%folder%" (
set previous=%current%
set current=%next%
set next=
goto :found
)
endlocal
@rem exit here if no match is found (should never happen)
goto :eof
@rem variables should have valid values
:found
echo %previous%
echo %current%
echo %next%
Объяснение:
3 переменные previous
, current
и next
используются как регистр сдвига,В каждой итерации цикла текущее значение каталога смещается на одно место через переменные
. В конце смещения переменная current
проверяется на наличие нужной папки
Если цикл заканчивается раньшеусловие истинно, это означает, что последняя папка является правильной, следовательно, конечные сдвиги.
Надеюсь, это поможет ...