Удалить SEP VirusDef по дате
В моей сети есть 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
Конечно, эти папки получают свое имя по дате их создания.
пожалуйста помоги:)
1 ответ
@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
команда.