批处理文件到 delete/remove 个旧 xx 天的文件夹

Batch file to delete/remove folders old of xx days

我需要一个批处理文件来删除 1 天前的文件夹。

文件夹包含将与文件夹一起删除的内部文件

我尝试了 3 种不同的代码,但没有删除旧文件夹。

要删除的文件夹所在的路径(路径有space):

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

我对已经指出的代码修复或有效的新代码感兴趣。

看来你只想检查所有以log_开头的日志目录,如果它们超过一天就删除它们,或者至少有一个昨天的日期,如果是这样,我相信这个是你想要的:

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

注意!这只会回显命令 rd /s /q path 以便您验证它是否按照您的预期执行。满意后,从 echo rd /s /q @path

行的末尾删除 echo