如何根据日期中的文件夹名称对旧目录进行排序和删除

时间:2019-03-14 18:42:58

标签: batch-file

因此,我有一个名为Folder1的文件夹,并且在该文件夹的内部有多个用于我们构建的其他文件夹。这些构建文件夹的命名约定是它们的构建日期。例如:20190314141438(这是2019-03-14时间14:14:38)。所以我想做的就是删除除最新的3个文件夹以外的所有内容。我以批处理脚本启动它,但是能够根据上次修改的日期将其删除,这是可行的,但是需要以某种方式比较所有文件夹名称并删除旧文件夹。这是我的脚本:

if not exist "%Location%" (
    echo The Location - "%Location%" does not exist
) ELSE (
    for /F "skip=3 delims=" %%i in ('dir "%Location%" /AD /B /O-D 2^>nul') do (
        echo Removing "%Location%\%%i"
        rd /Q /S "%Location%\%%i"
    )
)

我还在考虑是否无法使用批处理脚本,所以我可以创建一个Java程序,如果有人对我应该如何启动有任何想法,我可以这样做。谢谢。

更新: 一些文件夹在文件夹名称的末尾还会有一个发行版号,例如20190314141438_Release2。我如何告诉批处理文件忽略这些文件。我当时在考虑使用findstr /C:"Release1",并以某种方式将其放入if else语句中?

1 个答案:

答案 0 :(得分:0)

谢谢LotPings和Mofi帮助我解决了这个问题。我已经发布了有效的脚本:

RestTemplate