Имя: Пароль:
IT
Админ
Удаление файлов по дате из множества папок (Windows)
0 Hazer79
 
19.09.13
09:04
Дано: Win 2008 Server.
В одной из его папок есть 1600 подпапок. В каждой из этих подпапок по нескольку сотен файлов с 2009 года по текущий день.

Внимание, вопрос: как относительно быстро удалить из этих 1600 папок файлы ДО 01.01.2013 ?
1 spectre1978
 
19.09.13
09:07
Скрипт написать. На VBS, например
2 Voronve
 
19.09.13
09:08
(0) команда robocopy. Скопируй все что выше, по дате, 01.01.13 в другую папку с сохранением структуры каталогов. Текущую прибьешь.
3 spectre1978
 
19.09.13
09:13
(2) тоже вариант, но а) дольше; б) места надо вдвое больше чем текущий каталог. Зато не изгаляться со скриптами
4 spectre1978
 
19.09.13
09:15
+ (1) кстати, его можно не писать, а найти готовый; точно помню, что находили для подобной цели
5 tplink741nd
 
19.09.13
09:16
(0) напиши программу на Си :)
6 Defender aka LINN
 
19.09.13
09:23
(5) У нас же форум одинэснегов! (0) Обработку на 1С!
7 tplink741nd
 
19.09.13
09:26
(6) на апи виндовом кошернее будет :)
8 IVT_2009
 
19.09.13
09:27
вчера примерно то же делать пришлось. Тупым поиском в виндовс по критерию дата ищем все файлы и прибиваем прямо в окне поиска
9 Hazer79
 
19.09.13
09:41
(8) всё гениальное просто :-)
10 Defender aka LINN
 
19.09.13
09:45
(7) Только 1С, только хардкор!
11 yukon
 
19.09.13
11:25
(0) Если относительно быcтро из 1С, то можно так:

Path = "C:\\temp\\";
WMIServiceObject  = GetCOMObject("Winmgmts:{impersonationLevel=impersonate}\\.\root\CIMv2");
Files = WMIServiceObject.ExecQuery(
"SELECT
|    *
|FROM
|    CIM_DataFile
|WHERE
|    Name LIKE '" + Path + "%'
|    AND LastModified < '20130101'");

For each File In Files Do
    Message(File.name);
    //File.Delete();
EndDo;
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.