Задать вопрос
Umr001
@Umr001
php

Как удалить старые папки с помощью батника?

У меня есть скрипт, который создает папку с бекапом и название папки это число. Как удалить старую(вчерашнуюю) папку?
  • Вопрос задан
  • 1223 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@res2001
Developer, ex-admin
Команда
dir /a:d /o:-d /t:w /b %DIRNAME%
вернет отсортированный по убыванию даты изменения список подкаталогов в заданном каталоге, из этого списка пропускаете первых N записей (N - количество дней за которые хотите оставлять бэкап), остальные удаляете.
Схематично код будет выглядеть так:
set "DIRNAME=c:\TEMP"
set "N=10"
for /f "usebackq skipto=%N% tokens=* delims=" %%a in ('dir /a:d /o:-d /t:w /b %DIRNAME%') do (
 echo.RD /S /Q "%DIRNAME%\%%~a"
)

Код на работоспособность не проверял, но думаю идея должна быть понятна.
В помощь:
dir /?
for /?
rd /?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Ethril
Ну и колхоз.... forfiles /?
Ответ написан
Umr001
@Umr001 Автор вопроса
php
Может кому пригодиться:
set dt=%Date%  
set /a dtDay=%dt:~0,2%
set dtMonth=%dt:~3,2%
set /a dtYear=%dt:~-4%
set /a dtDay=%dtDay%-1
RD /S /Q "F:\path_to_folder\%dtDay%.%dtMonth%.20%dtYear%"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы