
如何修改以下批處理實(shí)現(xiàn)刪除文件名中包含指定日期串的文件如何用批處文件刪除N天前以日期規(guī)律命名的文件,文件的名字為 abc0116-0205.xls -02-13 221047 或者 ef0123609-0123315.xls -02-13 083946 ,就是文件的名字前部分長(zhǎng)度什么的沒(méi)有規(guī)律,后部分都 -02-13 083946 這樣,年-月-日 時(shí)分秒,怎么用BAT文件來(lái)實(shí)現(xiàn)?下面的例子只能刪除bak-2009-12-25格式命名的文件,對(duì)我的這些不起作用,請(qǐng)高手幫忙解決下
nclick="copycode($('code0'));">復(fù)制代碼
- @echo off
- ::演示:刪除指定路徑下指定天數(shù)之前(以文件名中包含的日期字符串為準(zhǔn))的文件。
- ::如果演示結(jié)果無(wú)誤,把del前面的echo去掉,即可實(shí)現(xiàn)真正刪除。
- ::本例假設(shè)文件名中包含的日期字符串(比如:bak-2009-12-25.log)
- rem 指定待刪除文件的存放路徑
- set SrcDir=H:/Test1
- rem 指定天數(shù)
- set DaysAgo=5
- >%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 /f /q %%a
- )
- )
- )
- endlocal
- pause

