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保留原权利!
版权声明:本文标题:windows通过文件名删除指定日期以前文件或目录.bat 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1735593993a1677867.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论