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 Sep 09, 2013 00:10    Post subject: Reply with quote

oshizelly wrote:
чем он пребывает в заблуждении, что всё получилось, как он рассчитывал
Суть автоматизации в том, чтобы юзер вообще об этом не думал. Если есть совпавшие элементы, которые были пропущены, то и мыслить об этом не имеет смысла, так как всё и так будет на своих местах.
oshizelly wrote:
если не считать непонятной для меня ссылки на Helper
Это пока единственное, чем я могу реализовать подобный алгоритм.

Сообщения не трогаю. Предлагаю пока потестить, что есть:
Code:
'======================================================================================
' Присвоение имени элемента из пассивной панели выбранным элементам в активной

' Условие: путь запуска пустой

' Параметры: 1) %WL; 2) "%T"; 3) "%M"; 4) <полное/базовое имя: 0/1>;
'            5) <при совпадении пропускать/добавлять № счётчика: 0/1>
' Пример:    %WL "%T" "%M" 0 1
'======================================================================================

With WScript.Arguments
  If .Count = 0 Then WScript.Quit
  List = .Item(0) : T = .Item(1) : Name = .Item(2) : OBN = .Item(3) : Add = .Item(4)
End With : Const M = 0
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each F in Split(FSO.GetFile(List).OpenAsTextStream(1, -1).ReadAll, vbNewLine)
  If F <> "" Then
    NN = Name
    If FSO.FileExists(F) Then
      If OBN Then
        Ext = FSO.GetExtensionName(F)
        If FSO.FileExists(T & Name) Then NN = FSO.GetBaseName(Name) & "." & Ext Else _
        NN = FSO.GetFileName(Name) & "." & Ext
      End If : If Add Then ReName NN
      If Not FSO.FileExists(NN) Then FSO.GetFile(F).Name = NN
    Else
      If FSO.FileExists(T & NN) Then NN = FSO.GetBaseName(NN)
      If Add Then ReName NN
      If Not FSO.FolderExists(NN) Then FSO.GetFolder(F).Name = FSO.GetFileName(NN)
    End If
  End If
Next : Set FSO = Nothing

Sub Rename(FName)
  FN = FName : n = 0
  Do While FSO.FileExists(FName) Or FSO.FolderExists(FName)
    n = n + 1 : If n < 10^M Then PFix = Right(String(M, "0") & n, M) Else PFix = n
    If FSO.FileExists(FN) Then
    FName = FSO.GetBaseName(FN) & " (" & PFix & ")." & FSO.GetExtensionName(FN)
    Else FName = FSO.GetFileName(FN) & " (" & PFix & ")"
    End If
  Loop
End Sub

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


Powered by phpBB © 2001, 2005 phpBB Group