windows机器中删除指定日期文件和目录的bat
2010-08-06 14:51
1226 查看
一、删除文件的:
@echo off
::演示:删除指定路径下指定天数之前(以文件名中包含的日期字符串为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例假设文件名中包含的日期字符串(比如:bak-2009-12-25.log)
rem 指定待删除文件的存放路径
set SrcDir=H:/test
rem 指定天数
set DaysAgo=2
>"%temp%/DstDate.vbs" echo LastDate=date()-%DaysAgo%
>>"%temp%/DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%/DstDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%/DstDate.vbs"') 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%/DstDate.vbs" echo LastDate=date()-%DaysAgo%
>>"%temp%/DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%/DstDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%/DstDate.vbs"') 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保留原权利!
@echo off
::演示:删除指定路径下指定天数之前(以文件名中包含的日期字符串为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例假设文件名中包含的日期字符串(比如:bak-2009-12-25.log)
rem 指定待删除文件的存放路径
set SrcDir=H:/test
rem 指定天数
set DaysAgo=2
>"%temp%/DstDate.vbs" echo LastDate=date()-%DaysAgo%
>>"%temp%/DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%/DstDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%/DstDate.vbs"') 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%/DstDate.vbs" echo LastDate=date()-%DaysAgo%
>>"%temp%/DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%/DstDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%/DstDate.vbs"') 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和linux删除指定目录及其该目录下的文件
- delphi 删除指定目录 下 指定日期之前所有文件
- windows 批处理删除指定目录下 指定类型 指定天数之前文件
- bat 删除指定目录下带后缀的文件
- 是否想为你的Windows加上一双眼睛,察看使用者在机器上所做的各种操作(例如建立、删除文件;改变文件或目录名字)呢?
- windows使用命令行快速删除当前目录下所有指定后缀的文件
- windows 定时清理指定目录文件bat
- Mayi_windows下 删除指定文件夹里面一周前的所有文件和文件夹的bat
- 删除指定目录下几天前文件,bat
- 写一个bat文件,删除文件名符合特定规则,且更改日期在某个日期之前的所有目录
- 删除目录下指定日期之前的文件命令
- shell-删除目录下指定日期前的所有文件
- 批处理bat脚本删除指定天数日期之前的文件(六种方案)
- 批处理bat删除指定天数日期之前的文件
- 利用脚步(bat文件)实现 删除指定目录下N天前的文件
- 删除指定目录下的指定后缀文件
- windows下清空目录下指定文件函数
- bat shell删除目录下文件
- 删除指定日期以前的文件
- 删除Windows文件名过长的文件或者目录