变量MMDD是通过VBS脚本获取的日期,是当前日期减去7天后的日期,比如今天是表3月15日,变量MMDD值就是0308。程序通过这样来处理删除一周前的文件。目标盘上需要处理的文件都是??XXMMDD.TXT格式,比如KHXX0315.TXT
程序通过for 语句判断dir列出的需要处理的文件名中的日期是否小于变量MMDD数值,如果小于则表示该文件可以删除。
现在有个问题就是,文件名中的日期代码只有月日,这样下来如果遇到12月31日这样的日期,产生的的文件名就会是KHXX1231.TXT,而跨年后获得的日期例如0115,1月15日,虽然KHXX1231.TXT已经是一周之前的旧文件了,但IF判断时1231比要删除日期的0115要大,请教论坛中的高手怎样解决像这样的情况呢?
(注:因文件建立日期有可能和文件名中的日期不符,所以只能通过文件名中日期进行判断)
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 已删除...
)
)
程序通过for 语句判断dir列出的需要处理的文件名中的日期是否小于变量MMDD数值,如果小于则表示该文件可以删除。
现在有个问题就是,文件名中的日期代码只有月日,这样下来如果遇到12月31日这样的日期,产生的的文件名就会是KHXX1231.TXT,而跨年后获得的日期例如0115,1月15日,虽然KHXX1231.TXT已经是一周之前的旧文件了,但IF判断时1231比要删除日期的0115要大,请教论坛中的高手怎样解决像这样的情况呢?
(注:因文件建立日期有可能和文件名中的日期不符,所以只能通过文件名中日期进行判断)
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 已删除...
)
)

