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 

Обмен кнопками
Goto page Previous  1, 2, 3, 4, 5 ... 43, 44, 45  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Секреты и советы printer-friendly view
View previous topic :: View next topic  
Author Message
Batya



Joined: 15 Dec 2004
Posts: 2221
Location: Москва, Россия

Post (Separately) Posted: Mon Mar 06, 2006 16:26    Post subject: Reply with quote

LocKtaR-o-DarK wrote:
лучше идеи выкладывайте...

Пожалуй, есть интересная кнопка, которой могу поделиться.
Quote:
TOTALCMD#BAR#DATA
d:\TotalCmd\Utils\Lst2Str\lst2str.exe
/X:"d:\Program Files\Compare It!\wincmp3.exe" /L:%L /F:%T%M
d:\progra~1\compar~1\wincmp3.exe
Сравнение файлов


-1

Кнопка - сравнение файлов с помощью сторонней утилиты Compare It! Если в текущей панели выделено более одного файла, то сравниваются первый и второй файлы. Если выделен только один или нет выделенных, то сравнивается файл под курсором с текущем файлом на противоположной панели (текущий - это тот, на котором стоит курсор, если нажать Tab (перейти на панель)).

Здесь цветами:
Синий - утилита lst2str от Гислера, которая передает указанной в параметрах программе в качестве параметров список выделенных файлов через пробел;
Зеленый - утилита Compare It!
Back to top
View user's profile Send private message
LocKtaR-o-DarK



Joined: 12 Aug 2005
Posts: 349
Location: Москва

Post (Separately) Posted: Mon Mar 06, 2006 17:01    Post subject: Reply with quote

Batya
Спасибо! ломал голову над этим, так и не добился результата... Sad
Если не трудно, ссылу на lst2str и думаю в описание кнопки надо добавить то, над чем ты работал, ... в одной панели.
Можно ли такое же сделать для бесплатного аналога _WinMerge программы Compare It! ?
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2221
Location: Москва, Россия

Post (Separately) Posted: Mon Mar 06, 2006 17:15    Post subject: Reply with quote

Утилита lst2str.

Для WinMerge синтаксис, вроде, должен быть тот же. Т.е. нужно поменять только путь к экзэшнику в параметрах кнопки и файле значка.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2221
Location: Москва, Россия

Post (Separately) Posted: Mon Mar 06, 2006 17:55    Post subject: Reply with quote

Еще кнопочка.
Так получается, что мне по работе часто приходится снимать признак ReadOnly с файлов. В принципе, можно для этого пользоваться и свойствами файлов, и командой изменения атрибутов в TC, но мне совсем не хотелось поднимать какие-либо диалоговые окна. Вот и написал скрипт.
Кнопка:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\RemoveReadOnly.vbs
%L
%COMMANDER_PATH%\Icons\X-Qute.icl,28
Снятие признака Read-Only


-1

Соответственно, пути к скрипту и файлу значка у вас могут свои.
Скрипт RemoveReadOnly.vbs:
Code:
'=====================================================================
' Снятие признака Read-Only с отмеченных файлов и папок (файлов в них)

' В параметрах вызова из TC должно быть прописано:
' %L
'=====================================================================

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

Dim Selected, CurrFile, CurrFolder
Do While Not StreamFile.AtEndOfStream
  Selected = StreamFile.ReadLine
  If FSO.FileExists(Selected) Then
    Set CurrFile = FSO.GetFile(Selected)
    If CurrFile.Attributes and 1 Then
      CurrFile.Attributes = CurrFile.Attributes - 1
    End If
  End If
  If FSO.FolderExists(Selected) Then
    Set CurrFolder = FSO.GetFolder(Selected)
    FolderProcess(CurrFolder)
  End If
Loop
'MsgBox("Выполнено!")
Wscript.Quit()

Function FolderProcess(CurrFolder)
  Dim sf, f
  For Each sf in CurrFolder.SubFolders
    FolderProcess(sf)
  Next
  For Each f in CurrFolder.Files
    If f.Attributes and 1 Then
      f.Attributes = f.Attributes - 1
    End If
  Next
End Function
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6154
Location: Москва

Post (Separately) Posted: Mon Mar 06, 2006 18:36    Post subject: Reply with quote

Batya
Quote:
Кнопка - сравнение файлов с помощью сторонней утилиты Compare It!

О, а вот за это респект! Compare It! я себе уже давно прикрутил, но как его вызывать для выделенных файлов, не продумал. Спасибо!

PS: Для более "чистого" вызова можно добавить параметр /N:2 Smile
Back to top
View user's profile Send private message
LocKtaR-o-DarK



Joined: 12 Aug 2005
Posts: 349
Location: Москва

Post (Separately) Posted: Fri Mar 10, 2006 14:54    Post subject: Reply with quote

Подтверждаю работу с WinMerge
Quote:
TOTALCMD#BAR#DATA
путь_к_
lst2str
/X:c:\progra~1\winmerge\winmerge /L:%L /F:%T%M /N:2
c:\progra~1\winmerge\winmerge.exe,1
Сравнение двух файлов в одной панели WinMerge


Last edited by LocKtaR-o-DarK on Mon Apr 03, 2006 10:14; edited 1 time in total
Back to top
View user's profile Send private message
LocKtaR-o-DarK



Joined: 12 Aug 2005
Posts: 349
Location: Москва

Post (Separately) Posted: Mon Mar 13, 2006 01:43    Post subject: Reply with quote

Компиляция скприпта NSIS
Code:
TOTALCMD#BAR#DATA
c:\progra~1\NSIS\makensisw
%N
c:\progra~1\NSIS\makensisw.exe
Компилировать NSIS


Last edited by LocKtaR-o-DarK on Mon Apr 03, 2006 10:15; edited 1 time in total
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2221
Location: Москва, Россия

Post (Separately) Posted: Mon Mar 13, 2006 13:46    Post subject: Reply with quote

Выше я описал, как принудительно снять атрибут у файлов.
Теперь есть задача:
Нужно файлам присваивать атрибут – скрытый, без лишних вопросов.
Во-первых, возможные атрибуты (можно изменить описанный ниже скрипт):
Code:
Normal        0     Normal file. No attributes are set.
ReadOnly      1     Read-only file. Attribute is read/write.
Hidden        2     Hidden file. Attribute is read/write.
System        4     System file. Attribute is read/write.
Volume        8     Disk drive volume label. Attribute is read-only.
Directory    16     Folder or directory. Attribute is read-only.
Archive      32     File has changed since last backup. Attribute is read/write.
Alias        64     Link or shortcut. Attribute is read-only.
Compressed  128     Compressed file. Attribute is read-only.


Теперь кнопка:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\SetHidden.vbs
%L
%COMMANDER_PATH%\Icons\X-Qute.icl,28
Снятие признака Read-Only


-1


Скрипт SetHidden.vbs:
Code:
'=====================================================================
' Установка признака Hidden у отмеченных файлов и папок (файлов в них)

' В параметрах вызова из TC должно быть прописано:
' %L
'=====================================================================

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

Dim Selected, CurrFile, CurrFolder, Attr
Attr = 2 ' Атрибут "Hidden"
Do While Not StreamFile.AtEndOfStream
  Selected = StreamFile.ReadLine
  If FSO.FileExists(Selected) Then
    Set CurrFile = FSO.GetFile(Selected)
    If Not (CurrFile.Attributes and Attr) Then
      CurrFile.Attributes = CurrFile.Attributes + Attr
    End If
  End If
  If FSO.FolderExists(Selected) Then
    Set CurrFolder = FSO.GetFolder(Selected)
    FolderProcess(CurrFolder)
  End If
Loop
'MsgBox("Выполнено!")
Wscript.Quit()

Function FolderProcess(CurrFolder)
  Dim sf, f
  For Each sf in CurrFolder.SubFolders
    FolderProcess(sf)
  Next
  For Each f in CurrFolder.Files
    If Not (f.Attributes and Attr) Then
      f.Attributes = f.Attributes + Attr
    End If
  Next
End Function
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Mon Mar 13, 2006 22:30    Post subject: Reply with quote

Batya, извини, но сильно режет глаз вот это
Code:
If Not (f.Attributes and Attr) Then
      f.Attributes = f.Attributes + Attr
End If


А не лучше ли вот так будет все это написать
Code:
f.Attributes = f.Attributes Or Attr

Операция OR корректно устанавливает атрибут вне зависимости от того присвоен ли он уже или нет (а And Not - снимает его так же корректно).
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2221
Location: Москва, Россия

Post (Separately) Posted: Tue Mar 14, 2006 11:26    Post subject: Reply with quote

Volniy
Ооо... Спасибо большое! Буду знать (я редко работал с битовыми комбинациями).
Back to top
View user's profile Send private message
Zorroz



Joined: 16 Dec 2004
Posts: 308
Location: Россия, Иркутская обл., г. Ангарск

Post (Separately) Posted: Tue Mar 14, 2006 16:15    Post subject: Reply with quote

2Batya
Спасибо за скрипт!!! Файлы скрываются, все ОК.
Но он не работает на папках, почему-то.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2221
Location: Москва, Россия

Post (Separately) Posted: Tue Mar 14, 2006 17:27    Post subject: Reply with quote

Zorroz wrote:
2Batya
Спасибо за скрипт!!! Файлы скрываются, все ОК.
Но он не работает на папках, почему-то.

А я для папок и не менял атрибуты. Только для файлов в них.
Если это надо, то кнопка:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\SetAttr.vbs
%L 2
%COMMANDER_PATH%\Icons\X-Qute.icl,28
Установка атрибута "Скрытый"


-1


Скрипт (немного поправленный и обобщенный) SetAttr.vbs:
Code:
'=====================================================================
' Установка атрибута у отмеченных файлов и папок (файлов в них)

' В параметрах вызова из TC должно быть прописано:
' %L {битовый флаг атрибута}
' например, для атрибута "Hidden" ("Скрытый"):
' %L 2
'=====================================================================

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

Dim Selected, CurrFile, CurrFolder, Attr
Attr = WScript.Arguments(1)
Do While Not StreamFile.AtEndOfStream
  Selected = StreamFile.ReadLine
  If FSO.FileExists(Selected) Then
    Set CurrFile = FSO.GetFile(Selected)
    CurrFile.Attributes = CurrFile.Attributes Or Attr
  End If
  If FSO.FolderExists(Selected) Then
    Set CurrFolder = FSO.GetFolder(Selected)
    CurrFolder.Attributes = CurrFolder.Attributes Or Attr
    FolderProcess(CurrFolder)
  End If
Loop
'MsgBox("Выполнено!")
Set FSO        = Nothing
Set StreamFile = Nothing
Set CurrFile   = Nothing
Set CurrFolder = Nothing
Wscript.Quit()

Function FolderProcess(CurrFolder)
  Dim sf, f
  For Each sf in CurrFolder.SubFolders
    sf.Attributes = sf.Attributes Or Attr
    FolderProcess(sf)
  Next
  For Each f in CurrFolder.Files
    f.Attributes = f.Attributes Or Attr
  Next
End Function


Last edited by Batya on Tue Mar 14, 2006 17:38; edited 1 time in total
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2221
Location: Москва, Россия

Post (Separately) Posted: Tue Mar 14, 2006 17:35    Post subject: Reply with quote

Для снятия атрибута кнопка:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\RemoveAttr.vbs
%L 2
%COMMANDER_PATH%\Icons\X-Qute.icl,28
Снятие атрибута "Скрытый"


-1


Скрипт RemoveAttr.vbs:
Code:
'=====================================================================
' Снятие атрибута с отмеченных файлов и папок (файлов в них)

' В параметрах вызова из TC должно быть прописано:
' %L {битовый флаг атрибута}
' например, для атрибута "Hidden" ("Скрытый"):
' %L 2
'=====================================================================

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

Dim Selected, CurrFile, CurrFolder, Attr
Attr = WScript.Arguments(1)
Do While Not StreamFile.AtEndOfStream
  Selected = StreamFile.ReadLine
  If FSO.FileExists(Selected) Then
    Set CurrFile = FSO.GetFile(Selected)
    CurrFile.Attributes = CurrFile.Attributes And Not Attr
  End If
  If FSO.FolderExists(Selected) Then
    Set CurrFolder = FSO.GetFolder(Selected)
    CurrFolder.Attributes = CurrFolder.Attributes And Not Attr
    FolderProcess(CurrFolder)
  End If
Loop
'MsgBox("Выполнено!")
Set FSO        = Nothing
Set StreamFile = Nothing
Set CurrFile   = Nothing
Set CurrFolder = Nothing
Wscript.Quit()

Function FolderProcess(CurrFolder)
  Dim sf, f
  For Each sf in CurrFolder.SubFolders
    sf.Attributes = sf.Attributes And Not Attr
    FolderProcess(sf)
  Next
  For Each f in CurrFolder.Files
    f.Attributes = f.Attributes And Not Attr
  Next
End Function
Back to top
View user's profile Send private message
Zorroz



Joined: 16 Dec 2004
Posts: 308
Location: Россия, Иркутская обл., г. Ангарск

Post (Separately) Posted: Wed Mar 15, 2006 12:35    Post subject: Reply with quote

Кнопочка для резервного копирования файлов перечисленных в «c:\totalcmd\Plugins\Script\backup\totalcmd.txt» в «E:\Мои Документы\Я-Copy\totalcmd\». Причем имя файла выглядит как день.месяц.год.

Code:
TOTALCMD#BAR#DATA
C:\Program Files\WinRAR\WinRAR.exe
a -m1 -agYYYY.MM.DD "E:\Мои Документы\Я-Copy\totalcmd\" @c:\totalcmd\Plugins\Script\backup\totalcmd.txt
C:\totalcmd\TOTALCMD.EXE
backup totalcmd
C:\Program Files\WinRAR\

-1


Вопрос! А что лучше использовать WinRAR.exe или Rar.exe в плане скорости?


Last edited by Zorroz on Wed May 17, 2006 04:18; edited 1 time in total
Back to top
View user's profile Send private message
iov



Joined: 17 Mar 2005
Posts: 51

Post (Separately) Posted: Wed Mar 15, 2006 19:49    Post subject: Reply with quote

Batya
Quote:
А у тебя в параметре /X у winmerge расширение не указано.
Эти грабли я сразу отложил подальше, только вот с %COMMANDER_PATH% беда, попробовал лечить примерно так
Code:

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\Lst2Str\lst2str.exe
/X:"..\winmerge\winmerge.exe"
/L:%L /F:%T%M /N:2
%COMMANDER_PATH%\Utils\winmerge\winmerge.exe
Сравнение файлов


-1

Всё бы хорошо, только вот если сравнивать файлы ниже корня total !!
Так! Я ночью в поле и кругом грабли!! Crying or Very sad

Желаемая кнопка! ( не пашет!)
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCplugins\lst2str\lst2str.exe
/X:"%COMMANDER_PATH%\Programm\!_Text&Office\WinMerge\WinMerge.exe" /L:%L /F:%T%M /N:2
%COMMANDER_PATH%\Programm\!_Text&Office\WinMerge\WinMerge.exe
Сравнение двух файлов в одной панели WinMerge


-1


lst2str случаем не обновлялась?
Пробовал на XP и 2003 сервере! Кроме этого косяков нет! Total как часы (плагины бывает и глючат , но работают)

Блин пока придётся кидать к каждой проге lst2str.exe, но это не решение проблемы а только способ её устранения!
в таком виде всё прекрасно работает!
Code:
TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\Programm\!_Text&Office\WinMerge\lst2str.exe"
/X:"WinMerge.exe" /L:%L /F:%T%M /N:2
%COMMANDER_PATH%\Programm\!_Text&Office\WinMerge\WinMerge.exe
Сравнение двух файлов в одной панели WinMerge


-1
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Секреты и советы All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4, 5 ... 43, 44, 45  Next
Page 4 of 45

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group