我的网络中有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
ofcource,这些文件夹的名称取自创建日期。
请帮助:)
答案 0 :(得分: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
命令。