window批量删除某一个文件夹下一天前的文件

Yi 工具 2024-01-19 83
@echo off
:: 设置目录路径
set directoryPath=C:\Program Files\ISRPA\temp

:: 获取前一天的日期
:: 使用 for 循环和 date 命令来获取前一天的日期。/f "tokens=1,2,3 delims=-" 表示将日期字符串按 - 分隔,并将第 1、2 和 3 个部分(年、月、日)分别赋值给变量 %%d、%%e 和 %%f。然后,将赋值后的结果存储在变量 prevDate 中,格式为 年-月-日。
for /f "tokens=1,2,3 delims=-" %%d in ('date /t-1') do (set prevDate=%%d-%%e-%%f)

:: 遍历目录中的文件,删除前一天的文件
:: 使用 for 循环和 /r 选项来遍历目录及其子目录中的所有文件。%directoryPath% 表示之前设置的目录路径。
for /r "%directoryPath%" %%f in (*.*) do (
    :: 检查当前文件的修改时间是否早于前一天的日期。"%%~tf" 表示当前文件的修改时间,%prevDate% 表示前一天的日期。
    if "%%~tf" lss "%prevDate%"  (
        echo 删除文件 "%%f"
        del "%%f"
    )
)

echo 完成!