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 Nov 11, 2019 14:58    Post subject: Reply with quote

Чиполлино
Короче, пока без расширений, но с регистронезависимостью, автопереименованием по счётчику при совпадении, работой в режимах без подкаталогов и найденных поиском файлов, поддержкой Юникода и длинных путей (260+):
Code:
'============================== VBS ==============================
' Убрать из базовых имён выбранных файлов имена родительских папок
' Параметр: %WL
'=================================================================
Option Explicit : Dim FSO, List, F, Ext, PF, PN, BN, FN, c
If WSH.Arguments.Count = 0 Then WSH.Quit
Set FSO = CreateObject("Scripting.FileSystemObject")
Set List = FSO.OpenTextFile(WSH.Arguments(0),,,-1)
Do: F = List.ReadLine
  If Right(F, 1) <> "\" Then
    Ext = FSO.GetExtensionName(F)
    If Len(Ext) Then Ext = "." & Ext
    PF = "\\?\" & FSO.GetParentFolderName(F) & "\"
    PN = FSO.GetFileName(PF) : BN = FSO.GetBaseName(F)
    If InStr(1, BN, PN, 1) > 0 And Len(PN) > 0 Then
      BN = Replace(BN, PN, "", 1, -1, 1)
      If Len(BN) Then
        FN = BN & Ext : c = 0
        While (FSO.FileExists(PF & FN) OR FSO.FolderExists(PF & FN))
          c = c + 1 : FN = BN & " (" & c & ")" & Ext
        Wend
        If Len(F) > 259 Or Len(PF & FN) > 259 Then F = "\\?\" & F
        FSO.GetFile(F).Name = FN
      End If
    End If
  End If
Loop Until List.AtEndOfStream : List.Close
Set List = Nothing : Set FSO = Nothing

_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group