Войти

Показать полную графическую версию : Помогите улучшить скрипт для поиска и удаления файлов


UpDaTe
21-03-2011, 21:51
Всем привет!
Написал скрипт на VBS, который в заданной папке и всех ее подпапках удаляет все файлы с заданным расширением и выводит статистику сколько файлов было удалено и суммарный размер удаленных файлов.
Например, я указываю в качестве пути к папке локальный диск d:\, в качестве расширения bmp (ну понятно в тестовом режиме я не использую удаление, т.е. просто поиск и вывод информации). Скрипт выдает допустим 3567 файлов общим размером 250 Мбайт. Далее я просто виндовым поиском ищу на этом же диске *.bmp и получаю 15964 найденных файлов. Разница огромна. А все дело в том что винда ищет в том числе и в архивах, а мой скрипт - нет.
Вопрос: как в VBS просматривать файлы в архивах? И удалять их оттуда.
Спасибо.

Iska
22-03-2011, 02:14
UpDaTe, теоретически — при зарегистрированной библиотеке «%systemroot%\system32\zipfldr.dll» можно попытаться задействовать «Shell.Application» для поиска. Практически — для более-менее серьёзной работы лучше попробовать пользовать какой-либо сторонний компонент, наподобие: VBScript: работа с zip-архивами с помощью компонента Zip Component (http://forum.script-coding.com/viewtopic.php?id=2842).

UpDaTe
22-03-2011, 12:16
Iska, спасибо. Скачал Zip Component, буду ковырять.

UpDaTe
22-03-2011, 21:57
Эх, думал не смотря на название компонент будет работать с разными типами архивов, в частности RAR. А оказывается не умеет... и ошибок не выдает, но и действий с rar-архивами не производит.

Iska
23-03-2011, 04:33
Нет, только zip.

Если нужно с rar и прочими — скорее всего придётся либо работать с командными строками архиваторов, либо непосредственно с библиотеками, прилагающимися к архиваторам. Последнее требует WinAPI, следовательно — либо какой-либо «большой» ЯВУ, либо AutoIt. Кстати сказать, Universal Extractor написан именно на AutoIt и работает, используя оба озвученных принципа.




© OSzone.net 2001-2012