admin 管理员组

文章数量: 1087135


2024年12月30日发(作者:菜鸟编程步骤)

windows机器中删除指定日期文件和目录的bat

注:此乃转载,原文出处:/liuyunfengheda?viewmode=list

一、删除文件的:

@echo off

::演示:删除指定路径下指定天数之前(以文件名中包含的日期字符串为准)的文件。

::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。

::本例假设文件名中包含的日期字符串(比如:)

rem 指定待删除文件的存放路径

set SrcDir=H:/test

rem 指定天数

set DaysAgo=2

>"%temp%/" echo LastDate=date()-%DaysAgo%

>>"%temp%/" echo FmtDate=right(year(LastDate),4) ^& right("0" ^&

month(LastDate),2) ^& right("0" ^& day(LastDate),2)

>>"%temp%/" echo FmtDate

for /f %%a in ('cscript /nologo "%temp%/"') do (

set "DstDate=%%a"

)

set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%

setlocal enabledelayedexpansion

for /r "%SrcDir%" %%a in (*.*) do (

set "FileDate=%%~na"

set "FileDate=!FileDate:~4,10!"

if "!FileDate!" leq "%DstDate%" (

if exist "%%a" (

echo del "%%a"

)

)

)

endlocal

pause

二、删除目录及目录下的文件的:

@echo off

::演示:删除指定路径下指定天数之前(以文件夹名中包含的日期字符串为准)的文件夹。

::如果演示结果无误,把rd前面的echo去掉,即可实现真正删除。

::本例假设文件夹名中包含的日期字符串(比如:Archive-2009-12-25)

rem 指定待删除文件夹的存放路径

set SrcDir=H:/test

rem 指定天数

set DaysAgo=20

>"%temp%/" echo LastDate=date()-%DaysAgo%

>>"%temp%/" echo FmtDate=right(year(LastDate),4) ^& right("0" ^&

month(LastDate),2) ^& right("0" ^& day(LastDate),2)

>>"%temp%/" echo FmtDate

for /f %%a in ('cscript /nologo "%temp%/"') do (

set "DstDate=%%a"

)

set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%

setlocal enabledelayedexpansion

for /d %%a in ("%SrcDir%/*.*") do (

set "FolderDate=%%~na"

set "FolderDate=!FolderDate:~0,10!"

if "!FolderDate!" leq "%DstDate%" (

if exist "%%a/" (

echo rd /s /q "%%a"

)

)

)

endlocal

pause

以上是根据007的整理而来,007保留原权利!


本文标签: 指定 删除 包含 路径 字符串