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: Tue Oct 12, 2010 14:20    Post subject: Reply with quote

vbs-cкрипт для полного решения изначальной задачи:
Code:
EnvArray = Array("COMMANDER_PATH", "WINDIR", "PROGRAMFILES")
Dim ReplArray
Set ReplArray = CreateObject("Scripting.Dictionary")
ReplArray.Add "Что менять", "На что менять"
ReplArray.Add "Так можно", "несколько раз"
'-----------------------------------
Param1 = 0:Param2 = "":Param3 = ""
If WScript.Arguments.Count > 0 Then Param1 = WScript.Arguments(0)
If WScript.Arguments.Count > 1 Then Param2 = WScript.Arguments(1)
If WScript.Arguments.Count > 2 Then Param3 = WScript.Arguments(2)
With CreateObject("TCScript.Helper")
  .SendCommand "cm_CopyFullNamesToClip", True
  Clip = .GetTextFromClip
  With CreateObject("WScript.Shell")
    For Each E In EnvArray
      E = "%" & E & "%"
      Clip = Replace(Clip, .ExpandEnvironmentStrings(E), E, 1, -1, 1)
    Next
  End With
  For Each K In ReplArray.Keys
    Clip = Replace(Clip, K, ReplArray(K), 1, -1, 1)
  Next
  Clip = vbLf & Clip & vbCr
  If Param1 = "1" Then Clip = RegExpReplace(Clip, "(\n)(.+)(\r)", "$1""$2""$3")
  Clip = RegExpReplace(Clip, "(\n)(.+)(\r)", "$1"   & Param2 & "$2$3")
  Clip = RegExpReplace(Clip, "(\n)(.+)(\r)", "$1$2" & Param3 & "$3")
  Clip = Mid(Clip, 2, Len(Clip) - 2)
  .SetTextToClip(Clip)
End With

Function RegExpReplace(pText, pReplStr1, pReplStr2)
  With New RegExp
    .Pattern    = pReplStr1
    .IgnoreCase = True
    .Global     = True
    RegExpReplace = .Replace(pText, pReplStr2)
  End With
End Function

Здесь в первой строке в массиве EnvArray нужно перечислить переменные окружения, которые могут быть заменены.
Для реализации п.1 задачи начитываем массив ReplArray.
Для реализации п.2 задачи используется первый параметр к скрипту. Значения 1 (добавлять кавычки) или 0 (не добавлять - по умолчанию).
Для реализации п.3 задачи используются второй и третий параметры к скрипту - добавочные приставка и окончание к каждой строке.
_________________
Нет, я не сплю. Я просто медленно моргаю.


Last edited by Batya on Tue Oct 12, 2010 16:50; edited 2 times in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group