1

我的网络中有 SEP(Symantec Endpoint Protection)。我想删除占用大量大小的旧病毒定义文件夹。

这是“VirusDef”文件夹内容:

Directory of \\10.1.66.101\c\Program Files\Common Files\Symantec Shared\VirusDefs

04/06/2014  09:14 PM    <DIR>          .
04/06/2014  09:14 PM    <DIR>          ..
03/24/2014  06:19 AM    <DIR>          20140322.002
03/26/2014  08:37 PM    <DIR>          20140325.009
03/31/2014  01:05 AM    <DIR>          20140329.002
04/03/2014  10:24 AM    <DIR>          20140401.023
09/15/2010  02:43 PM    <DIR>          BinHub
10/24/2013  12:56 AM           500,892 Cat.DB
04/03/2014  10:24 AM                34 definfo.dat
09/15/2010  02:43 PM    <DIR>          TextHub
01/10/2013  11:37 PM           500,660 umcat_01.db
04/03/2014  01:42 PM               141 usage.dat
               4 File(s)      1,001,727 bytes
               8 Dir(s)   1,114,185,728 bytes free

我必须保留最后修改的带有编号的文件夹,在这种情况下,它是 20140401.023 以及其他文件和文件夹。

我想删除带有以下数字的旧文件夹:

20140322.002
20140325.009
20140329.002

当然,这些文件夹的名称是在创建日期之前命名的。

请帮忙 :)

4

1 回答 1

2
@echo off
  setlocal enableextensions disabledelayedexpansion
  set "where=\\10.1.66.101\c\Program Files\Common Files\Symantec Shared\VirusDefs"
  for /f "skip=1 delims=" %%a in (
    'dir /b /ad /tc /o-d "%where%" ^|findstr /r /c:"^[0-9]*\.[0-9]*$"'
  ) do echo rmdir /s /q "%where%\%%a"

这使用 dir 命令枚举目录,按创建日期降序排序,通过 findstr 过滤以仅返回具有编号名称和扩展名的目录,从此列表中跳过第一个(较新的)并删除列表的其余部分。

rmdir只回显到控制台。如果输出正确,请删除该echo命令。

于 2014-04-08T09:53:14.003 回答