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
Batya



PostPosted: Mon Jul 28, 2008 14:48    Post subject: Reply with quote

LocKtaR-o-DarK
Ну, как говорится, "Хозяин - барин".
Я, правда, не понял о каких масках файлов ты говоришь.

... Вообщем написал vbs-скрипт.
В скрипте используется Script Helper.
Code:
'======================================================================
' Переименование выделенных файлов\папок -
'   Добавление в начало имени текста из буфера обмена

' Параметры вызова из TC:
' %L
'======================================================================

Option Explicit
Dim CharArr, RemStrArr
'=== Изменяемые параметры =============================================
'Массив недопустимых символов. Заменяем их указанным ниже символом
CharArr = Array(Chr(10), Chr(13), "\", "/")
'Символ для замены
Const ReplaceChar = " "
'Переходный символ
Const TransChar = "_"
'Массив удаляемых строк
RemStrArr = Array("Спёрто с http://www.site.com/", _
                  "пишем, что хотим удалить", _
                  "пишем, что также хотим удалить")
'======================================================================

Dim Mess, FSO, FileList, TCS, Clip, Char, F, FF

SetMess
Set FSO = CreateObject("Scripting.FileSystemObject")
CheckParam
For Each F In Split(FSO.OpenTextFile(FileList, 1, False).ReadAll, vbNewLine)
  F = Trim(F)
  If F <> "" Then
    If FSO.FileExists(F) Then
      Set FF = FSO.GetFile(F)
    End If
    If FSO.FileExists(F) Then
      Set FF = FSO.GetFile(F)
    End If
    If FSO.FolderExists(F) Then
      Set FF = FSO.GetFolder(F)
    End If
    FF.Name = Clip & TransChar & FF.Name
  End If
  Set FF = Nothing
Next

Quit

Sub CheckParam
  If WScript.Arguments.Count = 0 Then
    MessBox Mess(1), 1
    Quit
  End If
  FileList  = WScript.Arguments(0)
  If Not FSO.FileExists(FileList) Then
    MessBox Mess(2), 1
    Quit
  End If
  On Error Resume Next
  Set TCS = CreateObject("TCScript.Helper")
  If Err.Number > 0 Then
    MessBox Mess(3), 1
    Quit
  End If
  On Error GoTo 0
  Clip = TCS.GetTextFromClip
  If Clip = "" Then
    MessBox Mess(4), 1
    Quit
  End If
  For Each Char In RemStrArr
    Clip = Replace(Clip, Char, "")
  Next
  For Each Char In CharArr
    Clip = Replace(Clip, Char, ReplaceChar)
  Next
  Clip = Trim(Clip)
End Sub

Sub SetMess
  Set Mess = CreateObject("Scripting.Dictionary")
  Mess.Add 0,  "Переименование"
  Mess.Add 1,  "Неправильно указаны параметры!"
  Mess.Add 2,  "Входной параметр не является файлом!"
  Mess.Add 3,  "Не зарегистрирован объект 'Script Helper ActiveX for Total Commander'!"
  Mess.Add 4,  "Буфер обмена не содержит текста!"
End Sub

Function MessBox(pMess, pMode)
  Dim lIcon
  Select Case pMode
    Case 1 lIcon = vbCritical    + vbOKOnly
    Case 2 lIcon = vbExclamation + vbOKOnly
    Case 3 lIcon = vbInformation + vbOKOnly
    Case 4 lIcon = vbExclamation + vbOKCancel
  End Select
  MessBox = MsgBox(pMess, lIcon, Mess(0))
End Function

Sub Quit
  Set TCS = Nothing
  Set FSO = Nothing
  Wscript.Quit
End Sub

_________________
Нет, я не сплю. Я просто медленно моргаю.


Last edited by Batya on Mon Jan 12, 2009 13:12; edited 1 time in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group