
[已解決]如何修改以下腳本實現刪除文件名中包含指定日期串的文件最后由 tianshiguodong 于 -12-23 14:32由于我的文件名比較不規則,在使用以下批處理腳本時,無法確切判斷時間,所以導致文件被錯誤刪除,如我要刪除一天前的文件,但我的的文件中有11_123119120303.txt,使用此腳本判斷時就出現將19120303判斷為日期并刪除。我想可以通過在循環中加入截取時間字符串的操作后再判斷,但不知如何加,還請各位指點下另外我的文件規則是11_1111*.txt和12_1111*.txt類似這樣的文件,*為長度固定的數字格式
@echo off::演示:刪除指定路徑下指定天數之前(以文件名中包含的日期字符串為準)的文件。 ::如果演示結果無誤,把del前面的echo去掉,即可實現真正刪除。::本例假設文件名中包含的日期字符串(比如:bak-2009-12-25.log) rem 指定待刪除文件的存放路徑 set SrcDir=F:21testsmppbillstore rem 指定天數 set DaysAgo=1>%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

