删除目录下3天前的文件,但是保留名字为STAN04.LOG,STAN05.LOG,STAN06.LOG的文件的bat脚本
时间: 2023-02-09 11:55:52 浏览: 86
删除指定目录下指定几天前的文件.bat
要删除目录下3天前的文件,但保留名字为STAN04.LOG,STAN05.LOG,STAN06.LOG的文件,可以使用下面的 bat 脚本:
```
@echo off
setlocal
rem 设置要删除文件的目录
set "dir=C:\path\to\directory"
rem 设置保留文件的名字列表
set "keep=STAN04.LOG STAN05.LOG STAN06.LOG"
for /f "delims=" %%F in ('dir /b /a-d "%dir%" ^| findstr /v /i /l /g:"%keep%"') do (
rem 获取文件的创建时间
for /f "tokens=1-3 delims=. " %%A in ('dir /tc "%dir%\%%F"') do (
set "create=%%C %%B %%A"
)
rem 判断文件是否是 3 天前创建的
for /f "tokens=2-4 delims= " %%X in ('echo %date%') do (
set "today=%%Y-%%Z-%%X"
)
set /a "diff=((1%today:~6,4%-100)*365 + (1%today:~3,2%-100)) - ((1%create:~6,4%-100)*365 + (1%create:~3,2%-100))"
if %diff% GEQ 3 (
rem 删除文件
del "%dir%\%%F"
)
)
endlocal
```
在这个脚本中,需要替换 `C:\path\to\directory` 为实际的目录路径。如果需要保留的文件名字列表有变化,也需要更新 `keep` 变量的值。
阅读全文