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: Есть ли плагин подобный программе Binder (подшивка) 
Author Message
Batya



PostPosted: Mon Mar 13, 2006 12:28    Post subject: Re: Я попробовал все 3 способа Reply with quote

Vladimir77 wrote:
2. я не умею "от ярлыков копировать исходные файлы", как рекомендует автор совета.

Кнопка:
Code:
TOTALCMD#BAR#DATA
D:\CopyFromLink.vbs
%L %T
shell32.dll,66
Копирование из ярлыков


-1


CopyFromLink.vbs:
Code:
'==========================================================================
' Копирование файлов (в т.ч. файлов из ярлыков) из одной панели TC в другую
'
' В параметрах вызова из TC должно быть прописано:
' %L %T
'====================================================================

Dim TempFile, MyShell, FSO
Set TempFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0), 1)
Set MyShell = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")

Dim TrgPath, NewName
TrgPath = InputBox("Копировать в каталог:","Копирование",Wscript.Arguments(1))

Do While Not TempFile.AtEndOfStream
  MyFile = TempFile.ReadLine
  '----- Извлечение файла из ярлыка -----
  If StrComp(FSO.GetExtensionName(MyFile), "LNK", 1) = 0 Then
    MyFile = MyShell.CreateShortcut(MyFile).TargetPath
  End If
  '--------------------------------------
  If FSO.FileExists(MyFile) Then
    NewName = TrgPath & FSO.GetFile(MyFile).Name
    If Not FSO.FileExists(NewName) Then
      FSO.CopyFile MyFile, TrgPath
    End If
  ElseIf FSO.FolderExists(MyFile) Then
    NewName = TrgPath & FSO.GetFolder(MyFile).Name
    If Not FSO.FolderExists(NewName) Then
      FSO.CopyFolder MyFile, TrgPath
    End If
  End If
Loop
Set TempFile = Nothing
Set MyShell  = Nothing
Set FSO      = Nothing
WScript.Quit()


Vladimir77 wrote:
Ссылки на папки создаются по первой кнопке, но вторая кнопка их не обрабатывает.

Прошу прощения - про папки я не подумал Confused
Вот исправленный скрипт:
Code:
Dim ListFile, FSO, TargetDir, NewName
Set ListFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(Wscript.Arguments(0), 1)
Set FSO = CreateObject("Scripting.FileSystemObject")

TargetDir = InputBox("Копировать в каталог:","Копирование",Wscript.Arguments(1))
If Len(TargetDir) > 0 Then
  Dim SelFile
  Do While Not ListFile.AtEndOfStream
    SelFile = ListFile.ReadLine
    If FSO.FileExists(SelFile) Then
      NewName = TargetDir & FSO.GetFile(SelFile).Name
      If Not FSO.FileExists(NewName) Then
        FSO.CopyFile SelFile, TargetDir
      End If
    ElseIf FSO.FolderExists(SelFile) Then
      NewName = TargetDir & FSO.GetFolder(SelFile).Name
      If Not FSO.FolderExists(NewName) Then
        FSO.CopyFolder SelFile, TargetDir
      End If
    End If
  Loop
End If
Set ListFile = Nothing
Set FSO      = Nothing
WScript.Quit()


А еще заметил особенность (внимание, фича!) - если в параметрах вызова скрипта есть "%L", то панель TC самостоятельно обновится после того, как скрипт отработает.
Т. о., кнопка для этого скрипта:
Code:
TOTALCMD#BAR#DATA
d:\CopyFromList.vbs
%P%N %T %L
shell32.dll,66
Копирование из файла-списка


-1
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group