通过批处理文件删除超过3天的文件和文件夹

时间:2017-01-11 23:19:47

标签: batch-file

我正在尝试编写批处理脚本来删除数据超过3天的文件和文件夹。但是文件夹中有文件,一旦文件被删除,文件夹的最后修改数据就会变为今天,导致文件夹不被删除。

我的脚本有3个不同的文件:

1。包含路径和时间的属性文件

path_3=D:\Scripts\DeleteLogsScripts\test,3

2。用于读取路径和时间的批处理文件,并将它们作为变量发送到另一个批处理文件

setlocal enabledelayedexpansion
for /F "tokens=1,2,3 delims==," %%G IN (data.properties) DO (
@echo %%G %%H %%I
set local_path=%%H
set local_time=%%I
call backup_filecheck1.bat !local_path! !local_time!
)

3。用于删除文件的批处理文件

set local_path=%1
echo %local_path%
set local_time=%2
Forfiles /P "%local_path%" /S /D -%local_time% /C "Cmd /C If @isdir==FALSE Del @Path"
Forfiles /p "%local_path%" /S /C "Cmd /C If @isdir==TRUE RD /s /q @Path 2>Nul"

从中删除的文件夹:

Oroginal Folder Structure

After the files are deleted

如您所见,文件夹的上次修改日期将更改为今天。

我不明白如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

我终于弄清楚该怎么做了。我更新了脚本,删除文件后,它会对文件进行排序并删除空文件夹

?data.table