|
Удаление файлов по дате из множества папок (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;
|
|