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: Подобие команды cm_CopyNamesToClip 
Author Message
LonerD



PostPosted: Tue May 07, 2013 23:03    Post subject: Reply with quote

Вот такой ещё многовариантный скрипт на vbs есть. В основе - скрипт Андрея Аверина (не знаю - полностью ли делалось с нуля или заимствовались фрагменты из скриптов других авторов), немного я что-то переделывал под свои нужды.

Code:
'=================================================================
' Расширенное копирование в буфер имён и расширений файлов
'=================================================================
' Build:      1.55 (2012.12.17)
' Script:      CopyNamesToClip.vbs
'=================================================================
' Parameters
' 1-й: Cписок файлов
' 2-й: Состав итогового списка:
'   "1" - расширения файлов
'   "2" - имена файлов
'   "3" - "чистые имена" файлов (без расширения)
' 3-й: Разделитель (если = "##", то вводится в диалоге)
' 4-й:
'   "1" - преобразовать список файлов в одну строку
'   "0" (или другое значение) - не преобразовать
' 5-й: Начало строки
' 6-й: Конец строки
' Прим. 1 : одинаковые расширения/имена не добавляются
' Прим. 2 : начало и конец строк добавляются в каждую строку
'=================================================================
' %L "1" ";*." "1" "*." ";"  -  результат  -  *.vbs;*.txt;*.au3;
' %L "2" ";" "1"  -  результат  -  Read_me.txt;Wincmd.ini
' %L "3" "|" "1"  -  результат  -  Read_me|Wincmd|Wcmicons
'=================================================================
NirCmd = "%commander_path%\Plugins\exe\Nircmd\Nircmd.exe"
'=================================================================
Cnt = WScript.Arguments.Count
If Cnt > 2 Then
  Endd = "" : Home = "" : Text = ""
  Delim = WScript.Arguments(2)
  If Cnt > 3 Then Llist = WScript.Arguments(3)
  If Delim = "##" Then Delim = InputBox("Enter separator", "", ";")
  If Len(Delim) = 0 and StrComp(Llist,1,vbTextCompare) = 0 Then Delim = ";"
  Dim FSO, WSH
  Set FSO = CreateObject("Scripting.FileSystemObject")
  Set WSH = WScript.CreateObject("WScript.Shell")
  If Cnt > 4 Then
    Home = WScript.Arguments(4)
    If Cnt > 5 Then Endd = WScript.Arguments(5)
  End If
  Set ListFile = FSO.OpenTextFile(GetPath(WScript.Arguments(0)), 1)
  Do While Not ListFile.AtEndOfStream
    File = ListFile.ReadLine
    Ext = FSO.GetExtensionName(File)
    If StrComp(Llist,1,vbTextCompare) = 0 Then
    Select Case WScript.Arguments(1)
      Case 1 Stroka = FSO.GetExtensionName(File)
      Case 2 Stroka = FSO.GetBaseName(File) & "." & Ext
      Case 3 Stroka = FSO.GetBaseName(File)
    End Select
    Else
    Select Case WScript.Arguments(1)
      Case 1 Stroka = Home & Ext & Endd
      Case 2 Stroka = Home & FSO.GetBaseName(File) & "." & Ext & Endd
      Case 3 Stroka = Home & FSO.GetBaseName(File) & Endd
    End Select
    End If
    If InStr(UCase(Text), UCase(Stroka)) = 0 Then
      If StrComp(Llist,1,vbTextCompare) = 0 Then
        Text = Text & Stroka & Delim
        Else
        Text = Text & Stroka & Delim & vbCrLf
      End If
    End If
  Loop

  If StrComp(Llist,1,vbTextCompare) = 0 Then Text = Home & Left(Text, Len(Text) - Len(Delim)) & Endd
  Tmp = FSO.GetSpecialFolder(2) & "\" & FSO.GetTempName()
  FSO.CreateTextFile(Tmp, True).Write Text
  WSH.Run Chr(34) & GetPath(NirCmd) & Chr(34) & " " & "clipboard readfile " & Tmp , 2,True
  WScript.Sleep 1000
  FSO.DeleteFile Tmp
  Else
  CreateObject("WScript.Shell").Exec(Chr(34) & NirCmd & Chr(34) & " clipboard clear")
End If
Set ListFile = Nothing : Set WSH = Nothing : Set FSO = Nothing: WScript.Quit
Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End Function
'=================================================================

_________________
Windows 11 | TC DreamLair eternal pre-α
View user's profile Send private message Visit poster's website ICQ Number


Powered by phpBB © 2001, 2005 phpBB Group