Мне нужен командный файл для удаления папок старых от 1 дня.

Папки содержат внутренние файлы, которые будут удалены вместе с папками

Я попробовал 3 разных кода, но не удаляю старые папки.

Путь, где находятся папки для удаления (путь имеет пробел):

D:\Programmi Installati\

Примеры имен папок (начинаются с log_)

log_1
log_10-12-2019
log_2008-10000
log_222222211111

Дней назад: 1

:: Code 1

@echo off
setlocal

set target="D:\Programmi Installati\"
set days=1

for /f "usebackq delims=" %%G in (
'forfiles /p "%target%" /c "cmd /c if /i @isdir == true echo @path" /d -%days% 2^>nul'
) do rd /s /q "%%~G"

pause
endlocal & exit /b


:: Code 2

forfiles /p "D:\Programmi Installati\" /d -1 /c "cmd /c if @isdir==true rd /s /q @path"



:: Code 3

FORFILES /P "D:\Programmi Installati\" /S /C "cmd /c IF @isdir == TRUE rmdir /S @path /Q" -D -1

Меня интересует исправление уже указанного кода или новый код, который работает.

1 ответ1

1

Это решение, которое работает

@echo off
forfiles /P "D:\Programmi Installati" /M "log_*" /D -1 /C "cmd /c if @isdir==TRUE echo rd /s /q @path"

Этот код удаляет только папку с "log_" через 1 день.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .