Имя пользователя:
Пароль:
 

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

Ветеран


Contributor


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

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


Мой vbs-скрипт с регулярными выражениями и настройками на вид имени
Код: Выделить весь код
Plan = Array(8, 4, 4, 4, 12)        ' Число символов в каждой части имени
Delim = "-"                         ' Разделитель
Mask = "[0-9a-z]"                   ' Маска допустимых символов в имени

Set WShell = CreateObject("WScript.Shell")
BoxIn = WShell.ExpandEnvironmentStrings("%LocalAppData%") + "\1C\1cv8"

Set FSO = CreateObject("Scripting.FileSystemObject")

On Error Resume Next
Set InBox = FSO.GetFolder(BoxIn)
If Err.Number <> 0 Then
    MsgBox "Папка" + vbCrLf + vbCrLf + BoxIn + vbCrLf + vbCrLf + Err.Description
    On Error GoTo 0
Else
    On Error GoTo 0
    N1 = LBound(Plan)
    N2 = UBound(Plan)
    NLen = 0
    
    For i = N1 To N2
        InMask = InMask + Mask + "{" + CStr(Plan(i)) + "}"
        NLen = NLen + Plan(i)
        If i <> N2 Then
            InMask = InMask + Delim
            NLen = NLen + 1
        End If
    Next

    Set RegMaska = New RegExp
    RegMaska.Pattern = InMask
    RegMaska.IgnoreCase = True

    Set AllFolders = InBox.SubFolders
    For Each Folder In AllFolders
        NameFolder = Folder.Name
        If NLen = Len(NameFolder) Then
            If RegMaska.Test(NameFolder) Then
                On Error Resume Next
                LL = FSO.DeleteFolder(BoxIn + "\" + NameFolder, True)
                If Err.Number <> 0 Then
                    MsgBox "Папка" + vbCrLf + vbCrLf + BoxIn + "\" + NameFolder + vbCrLf + vbCrLf + Err.Description
                End If
                On Error GoTo 0
'                MsgBox Folder.Name
            End If
        End If
    Next
End If
Если в самом деле в имени папок только шестнадцатиричные числа, то маску нужно указать как
"[0-9a-f]"

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 11-07-2017 в 11:56.


Отправлено: 11:09, 11-07-2017 | #12