Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Автоматическое создание папок 
Author Message
Flasher



PostPosted: Mon Mar 20, 2017 15:16    Post subject: Reply with quote

Badboy
Без оверквотинга никак? Снизу памятки в первом пункте что написано?

Сам могу такую вещь предложить (в примерах 2 варианта решения):
Code:
'================================== VBS ================================
' Перемещение выбранных файлов в создаваемые при необходимости каталоги
' с тем же базовым именем или его частью, заданной регулярным выражением

' Параметры: %WL "<путь получателя>" <регулярное выражение>

' Условие: искомая часть в регулярном выражении записывается в скобках.
' Если второй параметр не задан или пуст, то
' получателем будет родительский каталог файла.

' Примеры:   %WL "%T"  |  %WL "" ^(\d+\.\d+\.\d+)  |  %WL "%T" (.{10})
'=======================================================================

Set A = WSH.Arguments : C = A.Count : If C = 0 Then WSH.Quit
Set FSO  = CreateObject("Scripting.FileSystemObject")
Set ShAp = CreateObject("Shell.Application")
Set List = FSO.OpenTextFile(A(0),,,-1)
If C = 3 Then _
Set Reg  = New RegExp : Reg.Global = True:_
Reg.IgnoreCase = True : Reg.Pattern = A(2)
Do : F = Trim(List.ReadLine)
  If FSO.FileExists(F) Then
    BN = FSO.GetBaseName(F)
    If IsObject(Reg) Then If Reg.Test(BN) Then _
    BN = Reg.Execute(BN)(0).Submatches(0) Else BN = ""
    If Len(BN) Then
      NF = "" : If C > 1 Then If A(1) <> "" Then NF = FSO.BuildPath(A(1),BN)
      If NF = "" Then NF = FSO.BuildPath(FSO.GetParentFolderName(F), BN)
      If Not FSO.FolderExists(NF) Then FSO.CreateFolder(NF)
      ShAp.NameSpace(NF).MoveHere F
    End If
  End If
Loop Until List.AtEndOfStream : List.Close
Если имя файла не соответствует искомой в выражении части, то он остаётся на месте.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.


Last edited by Flasher on Mon Mar 20, 2017 16:39; edited 1 time in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group