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: Fri Jan 30, 2015 13:41    Post subject: Reply with quote

Там менять-то нечего. Сделал новый:
Code:
'=======================================================================
' Копировать с переименованием по счётчику и добавочным расширением
' Параметры: %WL "<путь получателя>" <вставка перед №> <доп. расширение>
'=======================================================================
With WScript.Arguments
  C = .Count : If C = 0 Then WScript.Quit
  If C <> 4 Then MsgBox "Следует указать 4 параметра!", 48,_
  Space(12) & "Ошибка вводных данных" : WScript.Quit : End If
  List = .Item(0) : P = .Item(1) : S1 = .Item(2) : S2 = .Item(3)
End With

With CreateObject("Scripting.FileSystemObject")
  Path = .BuildPath(P, "\")
  Set List = .OpenTextFile(List,,,-1)
  Do : F = List.ReadLine
    If .FileExists(F) Then
      BN = .GetBaseName(F) : Ext = "." & .GetExtensionName(F)
      If Ext = "." & S2 Then
        Ext = "." & .GetExtensionName(BN) : Test = InStrRev(BN, S1)
        If Ext <> "." Then
          If Test Then BN = Left(.GetBaseName(BN), Test - 1)
        Else Ext = ""
          If Test And IsNumeric(Mid(BN, Test + Len(S1))) Then _
          BN = Left(.GetBaseName(BN), Test - 1)
        End If
      End If : F1 = Path & BN & S1 : S = Ext & "." & S2 : i = 1
      While .FileExists(F1 & i & S) : i = i + 1 : Wend
      .CopyFile F, F1 & i & S
    Else
      F1 = Path & .GetFileName(F) & S1 : i = 1
      While .FolderExists(F1 & i & "." & S2) : i = i + 1 : Wend
      .GetFolder(F).Copy F1 & i & "." & S2
    End If
  Loop Until List.AtEndOfStream
End With : 'CreateObject("WScript.Shell").SendKeys "^R"
Если нужно более быстрое появление в панели, то убираем апостроф в посл. строке.
Как это работает:
Code:
Имена выбранных файлов          Результаты
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯          ¯¯¯¯¯¯¯¯¯¯
Name.ext                        Name<префикс>№+1.ext.<постфикс>
Name.ext.<постфикс>             Name<префикс>№+1.ext.<постфикс>
Name<префикс>№.ext.<постфикс>   Name<префикс>№+1.ext.<постфикс>

Для папок - без заморочек:
Name                            Name<префикс>№+1.<постфикс>

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


Powered by phpBB © 2001, 2005 phpBB Group