批处理文件,以删除/删除xx天之前的文件夹

时间:2019-01-13 19:51:42

标签: batch-file directory delete-file

我需要一个批处理文件才能删除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 个答案:

答案 0 :(得分: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

的行末删除echo rd /s /q @path