Вот сценарий, использующий папки, которые начинаются только с 01. Daily Backup*
, видя, что это единственный пример, который вы привели.
@echo off
set "folder=01. Daily Backup*"
for /f "delims=" %%i in ('dir /b /ad /o-d "%folder%"') do set "todel=%%i"
for /f %%a in ('dir /b /ad "%folder%" ^| find /c /v ""') do set "count=%%a"
if %count% gtr 1 echo rmdir /S "%todel%"
Таким образом, мы будем dir
все папки, упорядоченные по дате (сначала самые новые)) установить только последнюю папку в качестве переменной.затем, если счетчик больше одного, удалите папку, которая была задана в качестве переменной.
Примечание , это еще не выполняет фактическое удаление, оно просто отобразит его, чтобы выполнитькоманда rmdir, удалите echo
из последней строки.
Edit Поскольку вы хотите просто сохранить последнюю папку и удалить остальные, просто сделайте это (снова удалите @echo
со строки для выполнения актуальной задачи):
@for /f "skip=1 delims=" %%i in ('dir /b /ad /o-d "01. Daily Backup*"') do (
@echo @rmdir /s "%%i"
)