Итак, у меня есть папка с именем Folder1, и внутри этой папки есть несколько других папок для нашей сборки. Соглашение об именах этих папок сборки - это дата их создания. Например: 20190314141438
(это 2019-03-14 время 14:14:38). Так что мне нравится делать, это удалить все, кроме последних 3 последних папок. Я запустил его в пакетном скрипте, но смог удалить его, основываясь на дате последнего изменения, что работает, но нужно как-то сравнить все имена папок и удалить старые. Вот мой сценарий:
if not exist "%Location%" (
echo The Location - "%Location%" does not exist
) ELSE (
for /F "skip=3 delims=" %%i in ('dir "%Location%" /AD /B /O-D 2^>nul') do (
echo Removing "%Location%\%%i"
rd /Q /S "%Location%\%%i"
)
)
Я также подумал, что если это невозможно с помощью пакетного скрипта, я могу создать java-программу, которая сделает это, если у кого-то есть идеи о том, как мне начать. Спасибо.
UPDATE:
Некоторые из папок также будут иметь номер выпуска в конце имени папки, например 20190314141438_Release2. Как бы я сказал командный файл игнорировать их. Я думал об использовании findstr /C:"Release1"
и как-то вставить это в оператор if else?