命令提示符 - 删除具有特定名称Patern的目录

时间:2017-09-07 18:24:38

标签: windows batch-file

我需要一个bat文件,它会删除特定的目录,只要它们有两个特定的关键字。 1)如果目录超过14天2)如果目录名称包含所有数字。

我有以下代码仅处理条件1,即目录超过14天。我如何将其扩展为仅删除具有基于数字的名称的那些。 FORFILES /D -14 /C "cmd /c IF @isdir == TRUE rmdir @path /s /q"

1 个答案:

答案 0 :(得分:2)

由于这将作为预定作业运行,因此您应该指定根文件夹。

您可以使用FINDSTR验证名称是否仅包含数字。需要前导点和尾随点来匹配@file中包含的引号。

pushd "yourRootPath"
FORFILES /D -14 /C "cmd /c IF @isdir == TRUE echo @file|>nul findstr /x .[0-9]*.&&rd /s /q @path"

然而,上述情况可能相当缓慢。迭代数字文件夹名称然后为每个候选文件夹调用FORFILES以测试日期可能会更快:

pushd "yourRootPath"
for /f "delims=" %%F in ('"dir /b /ad|findstr /x [0-9]*"') do 2>nul forfiles /d -14 /m %%F /c "cmd /c rd /s /q @path"