批处理文件以删除/移除超过xx天的文件夹

33 浏览
0 Comments

批处理文件以删除/移除超过xx天的文件夹

此问题已有答案:

批处理文件删除早于N天的文件

删除超过30天的子目录

如何使用FORFILES删除早于x天的文件?

我需要一个批处理文件来删除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

我对已经指示的代码感兴趣的修复或可行的新代码。

admin 更改状态以发布 2023年5月20日
0
0 Comments

看起来您想要检查所有以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

0