我需要一个bat文件,它会删除特定的目录,只要它们有两个特定的关键字。 1)如果目录超过14天2)如果目录名称包含所有数字。
我有以下代码仅处理条件1,即目录超过14天。我如何将其扩展为仅删除具有基于数字的名称的那些。 FORFILES /D -14 /C "cmd /c IF @isdir == TRUE rmdir @path /s /q"
答案 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"