根据文件名中的时间戳删除文件

时间:2019-04-03 11:41:35

标签: date batch-file time archive io-redirection

我正在使用以下脚本附加今天的日期,并将文件以以下格式移至存档目录:

XX-XXXX__2019-04-03.xlsx
XX-XXXX__2019-04-03.txt

其中XX-XXXX是变量文件名,本示例中的2019-04-03是今天的日期。我现在想扩展归档过程,以检查当前日期,并删除2天之前(即4月1日或更早)开始的文件。

    @echo off

    for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set DateTime=%%a

    set Yr=%DateTime:~0,4%
    set Mon=%DateTime:~4,2%
    set Day=%DateTime:~6,2%
    set Hr=%DateTime:~8,2%
    set Min=%DateTime:~10,2%

    for %%I in ("C:\Temp\Test_File\*.xlsx") do move "%%~I" "C:\Temp\Test_File\Archive\Processed\%%~nI__%Yr%-%Mon%-%Day%%%~xI"
    for %%I in ("C:\Temp\Test_File\*.txt") do move "%%~I" "C:\Temp\Test_File\Archive\Logs\%%~nI__%Yr%-%Mon%-%Day%%%~xI"

我需要检查文件名中的日期,因为它真实反映了文件的实际存档时间。上次修改的日期不一定与文件名中的日期戳相同。非常感谢您提供有关如何实现此目标的任何建议!

0 个答案:

没有答案