Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Вот вариант скрипта - перенесите его в блокнот, сохраните в файл с расширением VBS, настройте Ваши пути, запускайте как исполнимый файл. Тестировал, вроде работает.
В скрипте использована рекурсия, так что удаляем по маске все директории и во всех поддиректориях.
Код: Выделить весь код
'  Удаление скрытых директорий по маске

'  Исходные данные  ------------------------------------------------
iiiDir = "I:\Всякая дребедень"          ' Директория где удаляем
Maska = "^\$.*\$$"                      ' Маска удаляемой директории
' ------------------------------------------------------------------

Call AllFolders(iiiDir, Maska)


Sub AllFolders(inDir, inMaska)       ' ---------------------------------------------

Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFolder(inDir)
Set SubF = F.SubFolders

For Each Folder In SubF
    nA = Folder.Attributes
    if nA >= 2066 Then nA = nA - 2048

    If nA = 18 Or nA = 19 Or nA = 22 Or nA = 23 Or nA = 50 Or nA = 51 Or nA = 54 Or nA = 55 Then
	Set Re = New RegExp
        Re.Pattern = inMaska
	Re.IgnoreCase = True
        If Re.Test(Folder.Name) Then
'                MsgBox Folder.Name + "  " + CStr(Folder.Attributes) + "  " + CStr(Folder.Type) + " " + CStr(Re.Test(Folder.Name))
        	FSO.DeleteFolder inDir + "\" + Folder.Name, True
        Else
                Call AllFolders(inDir + "\" + Folder.Name, inMaska)
        End If
    Else
        Call AllFolders(inDir + "\" + Folder.Name, inMaska)
    End If

Next

End Sub

Последний раз редактировалось megaloman, 05-09-2009 в 00:41. Причина: Уточнение для случая сжатых папок


Отправлено: 21:51, 04-09-2009 | #4