@echo off
setlocal enabledelayedexpansion
set rootDir=E:\测试目录
set logFile=delete_log.txt
for /d %%d in ("%rootDir%\*") do (
set folderName=%%~nd
set folderName=!folderName:~0,8!
if "!folderName!" GTR "20000101" (
rmdir /s /q "%%d"
echo Folder "%%~nd" was deleted on %date% %time%. >> "%logFile%"
)
)
echo Done. >> "%logFile%"
把
set rootDir=E:\测试目录
这里的目录改成你的目标目录,添加到计划任务即可,删除后还会有日志的 :)
py打包成exe 可以不
把dir替换成你的目录就可以了,新建脚本文件,文件后缀格式为bat
@echo off
setlocal enabledelayedexpansion
set "dir=C:\Users\Administrator\Desktop\test"
for /f "delims=" %%i in ('dir /b "%dir%"') do (
set "name=%%~ni"
if "!name:~0,8!"=="!name:~0,8!" (
echo Deleting: %%i
rd /q /s "%dir%\%%i"
)
)
我们官方可以提供,这边只有一个文件,你的日期格式设置的时候得固定,这是正确的代码,楼下的所有代码或多或少都存在问题,我这里指定了具体年份,早于年份的文件夹也不会被删除
@echo off
setlocal enabledelayedexpansion
set "dir=C:\Users\administrator.AB\Desktop\test"
for /f "delims=" %%i in ('dir /b "%dir%"') do (
set "name=%%~ni"
if "!name:~0,8!"=="!name!" (
set "date=!name:~0,4!!name:~4,2!!name:~6,2!"
if "!date!" geq "20000101" (
echo Deleting: %%i
rd /q /s "%dir%\%%i"
)
)
)
@echo off
set "path_to_delete=C:\Temp" // 要删除的文件路径
set "file_extension=.log" // 要删除的文件扩展名
set "days_to_keep=7" // 保留的天数
rem 计算要删除的文件的最后修改时间
set "timestamp=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"
set /a "timestamp -= %days_to_keep%"
set "timestamp=%timestamp:~0,4%-%timestamp:~4,2%-%timestamp:~6,2% %timestamp:~8,2%:%timestamp:~10,2%:%timestamp:~12,2%"
rem 删除指定路径下指定扩展名的文件
forfiles /p "%path_to_delete%" /s /m "*%file_extension%" /c "cmd /c if @isdir==FALSE if @fdate<='%timestamp%' del @path"
例子参考
@echo off
set "targetFolder=C:\Users\YourUserName\Pictures"
set "fileNameFormat=YYYYMMDD"
set "currentDate=%date:6,4%%date:3,2%%date:0,2%"ni"
for /f "delims=" %%i in ('dir /b "%targetFolder%"') do (
set "fileName=%%
setlocal enabledelayedexpansion
if "!fileName!"=="!currentDate!" (
del "%targetFolder%%%i"
)
endlocal
)