FOR /F "DELIMS=" %%I IN ('DIR /A-D /B D:\??XX????.TXT') DO (
@SET FNAME=%%~NI
IF !FNAME:~-4! LSS %MMDD% (
@ECHO DEL %FRQS%\%%~NXI >NUL
@ECHO 文件 %FRQS%\%%~NXI 已删除...
)
)作者: fastslz 时间: 2008-3-16 00:44 代码自己写吧,给个思路
先截取文件名第四位,如果第4位是0重命名该文件成KHXX10115,再执行删除作者: lee928 时间: 2008-3-16 01:14 感谢楼上给的思路,没有用改文件名的方法,而是重新获取了一个变量M为当前月份,判断如果当前月为1-9,则在比较变量前加1,即(0315变为10315),如果是10-12月则在比较变量前加0,即(1231变为01231),这样跨年没有问题了,2008年的KHXX1231.TXT比较时变成了(01231),在2009年1月15日(10115)日就会被判断为过期文件进行删除。
但是又产生了新问题,就是10月执行删除9月文件时又遇到和跨年同样的问题了。
IF /I "%M:~0,1%"=="0" SET XMMDD=1%MMDD% ELSE XMMDD=0%MMDD%
FOR /F "DELIMS=" %%I IN ('DIR /A-D /B %FRQS%\??XX????.TXT') DO (
@SET FNAME=%%~NI
IF /I "!FNAME:~-4,1!"=="0" SET FNAME=1!FNAME:~-4! ELSE SET FNAME=0!FNAME:~-4!
IF !FNAME! LSS %XMMDD% (
@ECHO DEL %FRQS%\%%~NXI >NUL
@ECHO 文件 %FRQS%\%%~NXI 已删除...
)
)