写个bat删除指定文件夹下某天前所有文件信息

2025-04-26 17:37:53
推荐回答(2个)
回答1:

@echo off
::搜索并显示指定目录下(当前日期-修改日期>两天)的文件
setlocal enabledelayedexpansion
for /f "tokens=1-3 delims=/ " %%a in ('echo %date%') do set tday=%%a%%b%%c
::测试路径E:\DiffZipRUL,测试子目录搜索
::dir /s/b/a-d-h显示当前目录下的文件(子目录,简单格式,不显示目录,不显示隐藏文件
for /f "tokens=1 delims=" %%a in ('dir /s/b/a-d-h "E:\DiffZipRUL"') do (
set fname=%%a
::dir /tw显示修改时间
for /f "tokens=1-3,6 delims=/ " %%b in ('dir /tw "!fname!"^|findstr/v "字节"^|findstr/v "目录"^|findstr/v "卷"^|findstr/v "DIR"') do (
::取文件修改日期,然后+2表示两天的时间差
set /a fday=%%b%%c%%d
set /a fday+=2
::如果文件修改日期加上两天还是比当前日期小,那么表示修改于两天前,这里用echo !fname!显示符合条件的文件,以作调试,实际应用时改成需要的动作,比如删除就写作del "!fname!" /Q这样
if !fday! lss !tday! (echo "!fname!")
)
)

pause

回答2:

不是太明天你的意思,这有个以前写的,你参考下。